Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
aws-kinesisstreams-gluejob
Alle Klassen befinden sich in aktiver Entwicklung und unterliegen nicht abwärtskompatiblen Änderungen oder Entfernen in jeder zukünftigen Version. Diese unterliegen nicht derSemantische Versionierung
Hinweis: Um eine ordnungsgemäße Funktionalität sicherzustellen, müssen die AWS Solutions Constructs Pakete und AWS CDK-Pakete in Ihrem Projekt dieselbe Version aufweisen.
| Sprache | Paket |
|---|---|
|
aws_solutions_constructs.aws_kinesis_streams_gluejob
|
|
@aws-solutions-constructs/aws-kinesisstreams-gluejob
|
|
software.amazon.awsconstructs.services.kinesisstreamsgluejob
|
Overview
Dieses AWS Solutions Construct stellt einen Amazon Kinesis Data Stream bereit und konfiguriert einen AWS Glue e-Job für die Durchführung einer benutzerdefinierten ETL-Transformation mit den entsprechenden Ressourcen/Eigenschaften für Interaktion und Sicherheit. Außerdem wird ein Amazon S3 Bucket erstellt, in dem das Python-Skript für den AWS Glue e-Job hochgeladen werden kann.
Hier ist eine minimale bereitstellbare Musterdefinition in TypeScript:
import * as glue from '@aws-cdk/aws-glue'; import * as s3assets from '@aws-cdk/aws-s3-assets'; import { KinesisstreamsToGluejob } from '@aws-solutions-constructs/aws-kinesisstreams-gluejob'; const fieldSchema: glue.CfnTable.ColumnProperty[] = [ { name: 'id', type: 'int', comment: 'Identifier for the record', }, { name: 'name', type: 'string', comment: 'Name for the record', }, { name: 'address', type: 'string', comment: 'Address for the record', }, { name: 'value', type: 'int', comment: 'Value for the record', }, ]; const customEtlJob = new KinesisstreamsToGluejob(this, 'CustomETL', { glueJobProps: { command: { name: 'gluestreaming', pythonVersion: '3', scriptLocation: new s3assets.Asset(this, 'ScriptLocation', { path: `${__dirname}/../etl/transform.py`, }).s3ObjectUrl, }, }, fieldSchema: fieldSchema, });
Initializer
new KinesisstreamsToGluejob(scope: Construct, id: string, props: KinesisstreamsToGluejobProps);
Parameter
-
Bereich
Construct -
id
string
Musterkonstrukt Requisiten
| Name | Typ | Beschreibung |
|---|---|---|
| KinesisStreamProps? |
kinesis.StreamProps
|
Optionale, vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standard-Requisiten für den Amazon Kinesis Datenstrom. |
| Bestehend StreamObj? |
kinesis.Stream
|
Vorhandene Instanz von Kinesis Stream, die sowohl diese als auchkinesisStreamPropsEin Fehler führt zu einem. |
| GluejobProps? |
cfnJob.CfnJobProps
|
Vom Benutzer bereitgestellte Requisiten, um die Standard-Requisiten für den AWS Glue e-Auftrag zu überschreiben. |
| ExistingGlueJob? |
cfnJob.CfnJob
|
Vorhandene Instanz von AWS Glue Job, die sowohl diese als auchglueJobPropsEin Fehler führt zu einem. |
| Bestehende Datenbank? |
CfnDatabase
|
Vorhandene AWS Glue e-Datenbank, die mit diesem Konstrukt verwendet werden soll. Wenn dies gesetzt ist, danndatabasePropswird ignoriert. |
| DatabaseProps? |
CfnDatabaseProps
|
Vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standard-Requisiten, die zum Erstellen der AWS Glue e-Datenbank verwendet werden. |
| ExistingTable? |
CfnTable
|
Vorhandene Instanz der AWS Glue e-Tabelle. Wenn dies gesetzt ist, danntablePropsundfieldSchemawerden ignoriert. |
| TableProps? |
CfnTableProps
|
Vom Benutzer bereitgestellte Requisiten zum Überschreiben von Standardrequisiten, die zum Erstellen einer AWS Glue e-Tabelle verwendet werden. |
| FieldSchema? |
CfnTable.ColumnProperty[]
|
Vom Benutzer bereitgestellte Schemastruktur zum Erstellen einer AWS Glue e-Tabelle |
| OutputDataStore? |
SinkDataStoreProps |
Vom Benutzer bereitgestellte Requisiten für einen Amazon S3 Bucket, der die Ausgabe des AWS Glue e-Auftrags speichert. Derzeit unterstützt Amazon S3 nur als Ausgabe-Datenspeichertyp. |
SinkDataStoreProps
| Name | Typ | Beschreibung |
|---|---|---|
| Existings3OutputBucket? |
Bucket
|
Eine vorhandene Instanz von S3-Bucket, in dem die Daten geschrieben werden sollen. Bereitstellung sowohl dieser als auchoutputBucketPropsEin Fehler führt zu einem. |
| OutputBucketProps |
BucketProps
|
Vom Benutzer bereitgestellte Bucket-Eigenschaften, um den Amazon S3 Bucket zu erstellen, der zum Speichern der Ausgabe des AWS Glue e-Auftrags verwendet wird. |
| DataStoreType |
SinkStoreType |
Data-Store-Typ versenken. |
SinkStoreType
Aufzählung von Datenspeichertypen, die S3, DynamoDB, DocumentDB, RDS oder Redshift umfassen können. Die aktuelle Konstruktimplementierung unterstützt nur S3, kann aber in Zukunft andere Ausgabetypen hinzufügen.
| Name | Typ | Beschreibung |
|---|---|---|
| S3 |
string
|
S3-Speichertyp |
Standardeinstellung
Die vorgefertigte Implementierung dieses Musters ohne Überschreibungen setzt die folgenden Standardwerte:
Amazon Kinesis Stream
-
Konfigurieren Sie die IAM-Rolle für den Zugriff auf die geringste Berechtigung für den Amazon Kinesis Datenstrom.
-
Aktivieren Sie die serverseitige Verschlüsselung für den Amazon Kinesis Stream mit einem AWS Managed KMS-Schlüssel.
-
Stellen Sie bewährte Amazon CloudWatch Alarme für den Amazon Kinesis Stream bereit.
Glue e-Job
-
Erstellen Sie eine AWS Glue e-Sicherheitskonfiguration, die die Verschlüsselung für CloudWatch, Job Bookmarks und S3 konfiguriert. CloudWatch ch- und Job -Lesezeichen werden mit AWS Managed KMS Key verschlüsselt, der für AWS Glue Service erstellt wurde. Der S3-Bucket ist mit dem SSE-S3-Verschlüsselungsmodus konfiguriert.
-
Konfigurieren Sie Service-Rollenrichtlinien, mit denen AWS Glue von Amazon Kinesis Data Streams gelesen werden kann.
Glue e-Datenbank
-
Erstellen Sie eine AWS Glue e-Datenbank. Zur Datenbank wird eine AWS Glue e-Tabelle hinzugefügt. In dieser Tabelle wird das Schema für die Datensätze definiert, die im Amazon Kinesis Datenstrom gepuffert werden.
Glue e-Tabelle
-
Erstellen Sie eine AWS Glue e-Tabelle. Die Tabellenschemadefinition basiert auf der JSON-Struktur der Datensätze, die im Amazon Kinesis Data Stream gepuffert werden.
IAM Role (IAM-Rolle)
-
Eine Rolle zur Auftragsausführung, die Privilegien hat, 1) das ETL-Skript vom Amazon S3 Bucket-Speicherort zu lesen, 2) Datensätze aus dem Amazon Kinesis Datenstrom zu lesen und 3) den Amazon Glue e-Auftrag auszuführen.
Ausgang S3-Bucket
-
Ein Amazon S3 Bucket, in dem die Ausgabe der ETL-Transformation gespeichert werden soll. Dieser Bucket wird als Argument an den erstellten AWS Glue e-Auftrag übergeben, sodass er im ETL-Skript zum Schreiben von Daten verwendet werden kann.
Architecture
GitHub
| Um den Code für dieses Muster anzuzeigen, erstellen/anzeigen Probleme und Pull-Anforderungen usw.: | |
|---|---|
|
@aws -solutions-konstrukte/aws-kinesisstreams-gluejob |