aws-kinesisstreams-gluejob - Konstrukte für AWS S-Lösungen

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 VersionierungModell. Dies bedeutet, dass Sie möglicherweise Ihren Quellcode aktualisieren müssen, wenn Sie auf eine neuere Version dieses Pakets aktualisieren.

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
Python
aws_solutions_constructs.aws_kinesis_streams_gluejob
Typoskript
@aws-solutions-constructs/aws-kinesisstreams-gluejob
Java
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

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