aws-dynamodb-stream-lambda-elasticsearch-kibana - 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-dynamodb-stream-lambda-elasticsearch-kibana

Alle Klassen befinden sich in aktiver Entwicklung und unterliegen nicht abwärtskompatiblen Änderungen oder Entfernen in jeder zukünftigen Version. Diese unterliegen nicht derSemantic VersioningModell. 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_dynamodb_stream_lambda_elasticsearch_kibana
Typographische Schrift
@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana
Java
software.amazon.awsconstructs.services.dynamodbstreamlambdaelasticsearchkibana

Overview

Dieses AWS Solutions Construct implementiert Amazon DynamoDB -Tabelle mit Stream, einer AWS Lambda Funktion und einem Amazon Elasticsearch Service mit den geringsten Berechtigungen.

Hier ist eine minimale bereitstellbare Musterdefinition in TypeScript:

import { DynamoDBStreamToLambdaToElasticSearchAndKibana, DynamoDBStreamToLambdaToElasticSearchAndKibanaProps } from '@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana'; import { Aws } from "@aws-cdk/core"; const props: DynamoDBStreamToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { runtime: lambda.Runtime.NODEJS_14_X, // This assumes a handler function in lib/lambda/index.js code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }, domainName: 'test-domain', // TODO: Ensure the Cognito domain name is globally unique cognitoDomainName: 'globallyuniquedomain' + Aws.ACCOUNT_ID; }; new DynamoDBStreamToLambdaToElasticSearchAndKibana(this, 'test-dynamodb-stream-lambda-elasticsearch-kibana', props);

Initializer

new DynamoDBStreamToLambdaToElasticSearchAndKibana(scope: Construct, id: string, props: DynamoDBStreamToLambdaToElasticSearchAndKibanaProps);

Parameter

Muster-Konstrukt Requisiten

Name Typ Beschreibung
Gibt es LambdaObj? lambda.Function Vorhandene Instanz des Lambda Function-Objekts, die sowohl diese als auchlambdaFunctionPropsführt zu einem -Fehler.
LambdaFunctionProps? lambda.FunctionProps Optionale vom Benutzer bereitgestellte Eigenschaften, um die Standardeigenschaften für die Lambda Funktion zu überschreiben. Wird ignoriert, wenn einexistingLambdaObjwird zur Verfügung gestellt.
DynamoTableProps? dynamodb.TableProps Optional vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standard-Requisiten für DynamoDB -Tabelle
ExistingTableObj? dynamodb.Table Vorhandene Instanz des DynamoDB -Tabellenobjekts, die sowohl diese als auchdynamoTablePropsführt zu einem -Fehler.
DynamoEventSourceProps? aws-lambda-event-sources.DynamoEventSourceProps Optional vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standard-Requisiten für die DynamoDB Ereignisquelle
ESDomainProps? elasticsearch.CfnDomainProps Optional vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standard-Requisiten für den Amazon Elasticsearch Service
domainName string Domänenname für den Cognito und den Amazon Elasticsearch Service
CreateCloudWatchalarms boolean Gibt an, ob empfohlene CloudWatch Alarme erstellt werden sollen.

Muster-Eigenschaften

Name Typ Beschreibung
CloudwatChalarms? cloudwatch.Alarm[] Gibt eine Liste von einem oder mehreren CloudWatch Alarmen zurück, die durch das Muster erstellt wurden.
DynamoTable dynamodb.Table Gibt eine Instanz der DynamoDB -Tabelle zurück, die durch das Muster erstellt wurde.
ElasticSearchDomain elasticsearch.CfnDomain Gibt eine Instanz der Elasticsearch-Domäne zurück, die durch das Muster erstellt wurde.
IdentityPool cognito.CfnIdentityPool Gibt eine Instanz des Cognito Identitätspools zurück, der durch das Muster erstellt wurde.
LambdaFunction lambda.Function Gibt eine Instanz der Lambda Funktion zurück, die durch das Muster erstellt wurde.
userPool cognito.UserPool Gibt eine Instanz des Cognito Benutzerpools zurück, die durch das Muster erstellt wurde.
UserPoolClient cognito.UserPoolClient Gibt eine Instanz des Cognito Benutzerpool-Clients zurück, die durch das Muster erstellt wurde.

Lambda-Funktion

Dieses Muster erfordert eine Lambda Funktion, die Daten aus dem DynamoDB Stream in den Elasticsearch-Dienst posten kann. Eine Beispielfunktion wird bereitgestelltHier gilt.

Standardeinstellungen

Die vorgefertigte Implementierung dieses Musters ohne Überschreibungen setzt die folgenden Standardwerte:

Amazon DynamoDB Tabelle

  • Festlegen des Abrechnungsmodus für DynamoDB -Tabelle auf On-Demand (Bezahlung pro Anforderung)

  • Aktivieren der serverseitigen Verschlüsselung für DynamoDB Table mit AWS verwaltetem KMS-Schlüssel

  • Erstellt einen Partitionsschlüssel namens 'id' für DynamoDB -Tabelle

  • Beibehalten der Tabelle beim Löschen des CloudFormation -Stacks

  • Ermöglicht kontinuierliche Sicherungen und zeitpunktbezogene Wiederherstellung

AWS Lambda-Funktion

  • IAM-Rolle für den eingeschränkten Zugriff auf Berechtigungen für die Lambda -Funktion konfigurieren

  • Aktivieren Sie die Wiederverwendung von Verbindungen mit Keep-Alive für NodeJS Lambda Funktion

  • Aktivieren der X-Ray blaufverfolgung

  • Funktionen zur Fehlerbehandlung aktivieren: Bisect bei Funktion aktivieren Fehler; Standardeinstellung Maximales Datensatzalter (24 Stunden); Standardeinstellung Maximale Wiederholungsversuche (500) festlegen und SQS-Warteschlange für Dead-Letter als Ziel bei einem Fehler bereitstellen

  • Festlegen von Umgebungsvariablen:

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(für Node 10.x und höhere Funktionen)

Amazon Cognito

  • Festlegen von Kennwortrichtlinie für -

  • Erzwingen des erweiterten Sicherheitsmodus für Benutzerpools

Amazon Elasticsearch Service

  • Bereitstellen von Best Practices CloudWatch Alarmen für die Elasticsearch-Domäne

  • Sichern des Kibana-Dashboard-Zugriffs mit Cognito User

  • Aktivieren der serverseitigen Verschlüsselung für Elasticsearch Domain mit AWS verwaltetem KMS-Schlüssel

  • Aktivieren Sie die Knoten-zu-Knoten-Verschlüsselung für Elasticsearch-Domäne

  • Konfigurieren des Clusters für die Amazon ES-Domäne

Architecture

GitHub

Um den Code für dieses Muster anzuzeigen, erstellen/anzeigen Probleme und Pull-Anforderungen usw.:
@aws -solutions-konstrukte/aws-dynamodb-stream-lambda-elasticsearch-kibana