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.
Tutorial: Verwendung AWS Lambda mit Amazon DocumentDB DocumentDB-Streams
In diesem Tutorial erstellen Sie eine einfache Lambda-Funktion, die Ereignisse aus einem Amazon DocumentDB (mit MongoDB-Kompatibilität) Change-Stream konsumiert. Um dieses Tutorial abzuschließen, werden Sie die folgenden Phasen durchlaufen:
-
Richten Sie Ihren Amazon-DocumentDB-Cluster ein, stellen Sie eine Verbindung zu ihm her und aktivieren Sie Change-Streams darauf.
-
Erstellen Sie Ihre Lambda-Funktion und konfigurieren Sie Ihren Amazon-DocumentDB-Cluster als Ereignisquelle für Ihre Funktion.
-
Testen Sie das end-to-end Setup, indem Sie Elemente in Ihre Amazon DocumentDB DocumentDB-Datenbank einfügen.
Themen
- Voraussetzungen
- Erstellen Sie die Umgebung AWS Cloud9
- Erstellen Sie die EC2 Amazon-Sicherheitsgruppe
- Erstellen Sie den Amazon DocumentDB-Cluster
- Erstellen des Secrets in Secrets Manager
- Installieren der mongo-Shell
- Connect zum Amazon DocumentDB-Cluster her
- Change-Streams aktivieren
- Erstellen Sie Schnittstellen-Endpunkte VPC
- Erstellen der Ausführungsrolle
- So erstellen Sie die Lambda-Funktion:
- Erstellen Sie die Zuordnung von Ereignisquellen in Lambda
- Testen Sie Ihre -Funktion – manueller Aufruf
- Testen Sie Ihre Funktion – fügen Sie einen Datensatz ein
- Testen Sie Ihre Funktion – aktualisieren Sie einen Datensatz
- Testen Sie Ihre Funktion – löschen Sie einen Datensatz
- Bereinigen Ihrer Ressourcen
Voraussetzungen
Wenn Sie noch keine haben AWS-Konto, führen Sie die folgenden Schritte aus, um eine zu erstellen.
Um sich für eine anzumelden AWS-Konto
Öffnen Sie https://portal.aws.amazon.com/billing/die Anmeldung.
Folgen Sie den Online-Anweisungen.
Bei der Anmeldung müssen Sie auch einen Telefonanruf entgegennehmen und einen Verifizierungscode über die Telefontasten eingeben.
Wenn Sie sich für eine anmelden AWS-Konto, Root-Benutzer des AWS-Kontoswird eine erstellt. Der Root-Benutzer hat Zugriff auf alle AWS-Services und Ressourcen des Kontos. Als bewährte Sicherheitsmethode weisen Sie einem Administratorbenutzer Administratorzugriff zu und verwenden Sie nur den Root-Benutzer, um Aufgaben auszuführen, die Root-Benutzerzugriff erfordern.
AWS sendet Ihnen nach Abschluss des Anmeldevorgangs eine Bestätigungs-E-Mail. Sie können Ihre aktuellen Kontoaktivitäten jederzeit einsehen und Ihr Konto verwalten, indem Sie zu https://aws.amazon.com/
Nachdem Sie sich für einen angemeldet haben AWS-Konto, sichern Sie Ihren Root-Benutzer des AWS-Kontos AWS IAM Identity Center, aktivieren und erstellen Sie einen Administratorbenutzer, sodass Sie den Root-Benutzer nicht für alltägliche Aufgaben verwenden.
Sichern Sie Ihre Root-Benutzer des AWS-Kontos
-
Melden Sie sich AWS Management Console
als Kontoinhaber an, indem Sie Root-Benutzer auswählen und Ihre AWS-Konto E-Mail-Adresse eingeben. Geben Sie auf der nächsten Seite Ihr Passwort ein. Hilfe bei der Anmeldung mit dem Root-Benutzer finden Sie unter Anmelden als Root-Benutzer im AWS-Anmeldung Benutzerhandbuch zu.
-
Aktivieren Sie die Multi-Faktor-Authentifizierung (MFA) für Ihren Root-Benutzer.
Anweisungen finden Sie im Benutzerhandbuch unter Aktivieren eines virtuellen MFA Geräts für Ihren AWS-Konto IAM Root-Benutzer (Konsole).
Erstellen eines Benutzers mit Administratorzugriff
-
Aktivieren Sie IAM Identity Center.
Anweisungen finden Sie unter Aktivieren AWS IAM Identity Center im AWS IAM Identity Center Benutzerhandbuch.
-
Gewähren Sie einem Benutzer in IAM Identity Center Administratorzugriff.
Ein Tutorial zur Verwendung von IAM-Identity-Center-Verzeichnis als Identitätsquelle finden Sie unter Benutzerzugriff mit der Standardeinstellung konfigurieren IAM-Identity-Center-Verzeichnis im AWS IAM Identity Center Benutzerhandbuch.
Anmelden als Administratorbenutzer
-
Um sich mit Ihrem IAM Identity Center-Benutzer anzumelden, verwenden Sie die Anmeldung, URL die an Ihre E-Mail-Adresse gesendet wurde, als Sie den IAM Identity Center-Benutzer erstellt haben.
Hilfe bei der Anmeldung mit einem IAM Identity Center-Benutzer finden Sie im AWS-Anmeldung Benutzerhandbuch unter Anmeldung beim AWS Zugangsportal.
Weiteren Benutzern Zugriff zuweisen
-
Erstellen Sie in IAM Identity Center einen Berechtigungssatz, der der bewährten Methode zur Anwendung von Berechtigungen mit den geringsten Rechten folgt.
Anweisungen hierzu finden Sie unter Berechtigungssatz erstellen im AWS IAM Identity Center Benutzerhandbuch.
-
Weisen Sie Benutzer einer Gruppe zu und weisen Sie der Gruppe dann Single Sign-On-Zugriff zu.
Eine genaue Anleitung finden Sie unter Gruppen hinzufügen im AWS IAM Identity Center Benutzerhandbuch.
Wenn Sie das noch nicht installiert haben AWS Command Line Interface, folgen Sie den Schritten unter Installieren oder Aktualisieren der neuesten Version von AWS CLI, um es zu installieren.
Das Tutorial erfordert zum Ausführen von Befehlen ein Befehlszeilenterminal oder eine Shell. Verwenden Sie unter Linux und macOS Ihre bevorzugte Shell und Ihren bevorzugten Paketmanager.
Anmerkung
In Windows werden einige CLI Bash-Befehle, die Sie häufig mit Lambda verwenden (z. B.zip
), von den integrierten Terminals des Betriebssystems nicht unterstützt. Um eine in Windows integrierte Version von Ubuntu und Bash zu erhalten, installieren Sie das Windows-Subsystem für Linux
Erstellen Sie die Umgebung AWS Cloud9
Bevor Sie die Lambda-Funktion erstellen, müssen Sie Ihren Amazon-DocumentDB-Cluster erstellen und konfigurieren. Die Schritte zum Einrichten Ihres Clusters in diesem Tutorial basieren auf dem Verfahren unter Erste Schritte mit Amazon DocumentDB.
Anmerkung
Wenn Sie bereits einen Amazon DocumentDB-Cluster eingerichtet haben, stellen Sie sicher, dass Sie Change-Streams aktivieren und die erforderlichen VPC Schnittstellenendpunkte erstellen. Anschließend können Sie direkt mit den Schritten zur Funktionserstellung fortfahren.
Erstellen Sie zunächst eine AWS Cloud9 Umgebung. In diesem Tutorial verwenden Sie diese Umgebung, um eine Verbindung zu Ihrem Amazon DocumentDB-Cluster herzustellen und ihn abzufragen.
Um eine Umgebung zu erstellen AWS Cloud9
-
Öffnen Sie die AWS Cloud9 Konsole
und wählen Sie Umgebung erstellen. -
Erstellen Sie eine Umgebung mit der folgenden Konfiguration:
-
Unter Details:
-
Name (Name:
DocumentDBCloud9Environment
-
Umgebungstyp: Neue EC2 Instanz
-
-
Unter Neue EC2 Instanz:
-
Instanztyp:
t2.micro
(1 GiB RAM + 1 vCPU) -
Plattform: Amazon Linux 2
-
Timeout: 30 Minuten
-
-
Unter Netzwerkeinstellungen:
-
Verbindung: AWS Systems Manager () SSM
-
Erweitern Sie das VPCDrop-down-Menü mit den Einstellungen.
-
Amazon Virtual Private Cloud (VPC): Wählen Sie Ihre Standardeinstellung. VPC
-
Subnetz: Keine Präferenz
-
-
Behalten Sie die alle Standardeinstellung bei.
-
-
Wählen Sie Create (Erstellen) aus. Die Bereitstellung Ihrer neuen AWS Cloud9 Umgebung kann mehrere Minuten dauern.
Erstellen Sie die EC2 Amazon-Sicherheitsgruppe
Als Nächstes erstellen Sie eine EC2Amazon-Sicherheitsgruppe mit Regeln, die den Datenverkehr zwischen Ihrem Amazon DocumentDB-Cluster und Ihrer AWS Cloud9 Umgebung zulassen.
Um eine EC2 Sicherheitsgruppe zu erstellen
-
Öffnen Sie die EC2Konsole
. Wählen Sie unter Netzwerk und Sicherheit die Option Sicherheitsgruppen aus. -
Wählen Sie Sicherheitsgruppe erstellen aus.
-
Erstellen Sie eine Sicherheitsgruppe mit der folgenden Konfiguration:
-
Unter Grundlegende Details:
-
Security group name (Name der Sicherheitsgruppe:
DocDBTutorial
-
Beschreibung: Sicherheitsgruppe für den Verkehr zwischen AWS Cloud9 und Amazon DocumentDB.
-
VPC: Wählen Sie Ihre Standardeinstellung VPC.
-
-
Wählen Sie unter Inbound rules (Regeln für eingehenden Datenverkehr) die Option Add rule (Regel hinzufügen). Erstellen Sie eine Regel mit der folgenden Konfiguration:
-
Typ: Benutzerdefiniert TCP
-
Portbereich: 27017
-
Quelle: Benutzerdefiniert
-
Wählen Sie im Suchfeld neben Quelle die Sicherheitsgruppe für die AWS Cloud9 Umgebung aus, die Sie im vorherigen Schritt erstellt haben. Um eine Liste der verfügbaren Sicherheitsgruppen anzuzeigen, geben Sie
cloud9
in das Suchfeld ein. Wählen Sie die Sicherheitsgruppe mit dem Namenaws-cloud9-<environment_name>
aus.
-
-
Behalten Sie die alle Standardeinstellung bei.
-
-
Wählen Sie Sicherheitsgruppe erstellen aus.
Erstellen Sie den Amazon DocumentDB-Cluster
In diesem Schritt erstellen Sie einen Amazon DocumentDB-Cluster mit der Sicherheitsgruppe aus dem vorherigen Schritt.
So erstellen Sie einen Amazon DocumentDB-Cluster
-
Öffnen Sie die Amazon DocumentDB DocumentDB-Konsole
. Wählen Sie unter Cluster die Option Erstellen aus. -
Erstellen Sie einen Cluster mit der folgenden Konfiguration:
-
Wählen Sie als Cluster-Typ die Option Instance-basierter Cluster aus.
-
Unter Konfiguration:
-
Engine-Version: 5.0.0
-
Instanzklasse: db.t3.medium (für eine kostenlose Testversion geeignet)
-
Anzahl der Instanzen: 1
-
-
Unter Authentifizierung:
-
Geben Sie den Benutzernamen und das Passwort ein, die für die Verbindung mit Ihrem Cluster erforderlich sind (dieselben Anmeldeinformationen, mit denen Sie das Geheimnis im vorherigen Schritt erstellt haben). Bestätigen Sie unter Passwort bestätigen Ihr Passwort.
-
-
Aktivieren Sie Erweiterte Einstellungen anzeigen.
-
Unter Netzwerkeinstellungen:
-
Virtual Private Cloud (VPC): Wählen Sie Ihren Standard VPC.
-
Subnetzgruppe: Standard
-
VPCSicherheitsgruppen: Wählen Sie zusätzlich die
DocDBTutorial (VPC)
Sicherheitsgruppe ausdefault (VPC)
, die Sie im vorherigen Schritt erstellt haben.
-
-
Behalten Sie die alle Standardeinstellung bei.
-
-
Wählen Sie Cluster erstellen. Die Bereitstellung Ihres Amazon DocumentDB-Clusters kann mehrere Minuten dauern.
Erstellen des Secrets in Secrets Manager
Um manuell auf Ihren Amazon DocumentDB-Cluster zuzugreifen, müssen Sie einen Benutzernamen und ein Passwort angeben. Damit Lambda auf Ihren Cluster zugreifen kann, müssen Sie bei der Einrichtung Ihrer Zuordnung von Ereignisquellen ein Secret in Secrets Manager angeben, das die gleichen Anmeldeinformationen enthält. In diesem Schritt erstellen Sie dieses Secret.
Um das Secret in Secrets Manager zu erstellen
-
Öffnen Sie die Secrets-Manager-Konsole
und wählen Sie Neues Secret speichern. -
Wählen Sie für Secret-Typ auswählen eine der folgenden Optionen aus:
-
Unter Grundlegende Details:
-
Geheimer Typ: Anmeldeinformationen für Ihre Amazon DocumentDB DocumentDB-Datenbank
-
Geben Sie unter Anmeldeinformationen den Benutzernamen und das Passwort ein, die Sie für den Zugriff auf Ihren Amazon DocumentDB-Cluster verwenden.
-
Datenbank: Wählen Sie Ihren Amazon DocumentDB-Cluster.
-
Wählen Sie Weiter.
-
-
-
Wählen Sie unter Secret konfigurieen eine der folgenden Optionen aus:
-
Geheimer Name —
DocumentDBSecret
-
Wählen Sie Weiter.
-
-
Wählen Sie Weiter.
-
Wählen Sie Store (Speichern) aus.
-
Aktualisieren Sie die Konsole, um zu überprüfen, ob Sie das
DocumentDBSecret
-Secret erfolgreich gespeichert haben.
Notieren Sie sich das Geheimnis ARN Ihres Geheimnisses. Sie werden es in einem späteren Schritt noch benötigen.
Installieren der mongo-Shell
In diesem Schritt installieren Sie die Mongo-Shell in Ihrer AWS Cloud9 Umgebung. Die Mongo-Shell ist ein Befehlszeilenprogramm, mit dem Sie eine Verbindung zu Ihrem Amazon DocumentDB-Cluster herstellen und ihn abfragen können.
Um die Mongo-Shell in Ihrer Umgebung zu installieren AWS Cloud9
-
Öffnen Sie die AWS Cloud9 -Konsole
. Klicken Sie neben der DocumentDBCloud9Environment
Umgebung, die Sie zuvor erstellt haben, auf den Link Öffnen in der AWS Cloud9 IDESpalte. -
Erstellen Sie im Terminal-Fenster die MongoDB-Repository-Datei mit dem folgenden Befehl:
echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
-
Installieren Sie daraufhin die mongo-Shell mit dem folgenden Befehl:
sudo yum install -y mongodb-org-shell
-
Um Daten während der Übertragung zu verschlüsseln, laden Sie den öffentlichen Schlüssel für Amazon DocumentDB
. Der folgende Befehl lädt eine Datei mit dem Namen global-bundle.pem
herunter:wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
Connect zum Amazon DocumentDB-Cluster her
Sie sind jetzt bereit, über die Mongo-Shell eine Verbindung zu Ihrem Amazon DocumentDB-Cluster herzustellen.
So stellen Sie eine Verbindung zu Ihrem Amazon DocumentDB-Cluster her
-
Öffnen Sie die Amazon DocumentDB DocumentDB-Konsole
. Wählen Sie unter Cluster Ihren Cluster aus, indem Sie seine Cluster-ID auswählen. -
Wählen Sie auf der Registerkarte Konnektivität und Sicherheit unter Mit der Mongo-Shell mit diesem Cluster Connect die Option Kopieren aus.
-
Fügen Sie diesen Befehl in Ihrer AWS Cloud9 Umgebung in das Terminal ein. Ersetzen Sie
<insertYourPassword>
durch das richtige Passwort.
Wenn nach der Eingabe dieses Befehls die Eingabeaufforderung auf rs0:PRIMARY>
gesetzt wird, sind Sie mit Ihrem Amazon DocumentDB-Cluster verbunden.
Change-Streams aktivieren
In diesem Tutorial verfolgen Sie Änderungen an der products
Sammlung der docdbdemo
Datenbank in Ihrem Amazon DocumentDB-Cluster. Sie tun dies, indem Sie Change-Streams aktivieren. Erstellen Sie zunächst die docdbdemo
-Datenbank und testen Sie sie, indem Sie einen Datensatz einfügen.
Um eine neue Datenbank in Ihrem Cluster zu erstellen
-
Stellen Sie in Ihrer AWS Cloud9 Umgebung sicher, dass Sie immer noch mit Ihrem Amazon DocumentDB-Cluster verbunden sind.
-
Erstellen Sie mit dem folgenden Befehl im Terminal-Fenster eine neue Datenbank mit dem Namen
docdbdemo
:use docdbdemo
-
Verwenden Sie dann den folgenden Befehl, um einen Datensatz einzufügen
docdbdemo
:db.products.insert({"hello":"world"})
Die Ausgabe sollte in etwa wie folgt aussehen:
WriteResult({ "nInserted" : 1 })
-
Verwenden Sie den folgenden Befehl, um alle Datenbanken aufzulisten:
show dbs
Stellen Sie sicher, dass Ihre Ausgabe die
docdbdemo
-Datenbank enthält:docdbdemo 0.000GB
Dann aktivieren Sie mit dem folgenden Befehl Change-Streams für die products
-Sammlung der docdbdemo
-Datenbank:
db.adminCommand({modifyChangeStreams: 1, database: "docdbdemo", collection: "products", enable: true});
Die Ausgabe sollte in etwa wie folgt aussehen:
{ "ok" : 1, "operationTime" : Timestamp(1680126165, 1) }
Erstellen Sie Schnittstellen-Endpunkte VPC
Als Nächstes erstellen Sie VPCSchnittstellenendpunkte, um sicherzustellen, dass Lambda und Secrets Manager (die später zum Speichern unserer Cluster-Zugangsdaten verwendet werden) eine Verbindung zu Ihrem Standard herstellen können. VPC
Um Schnittstellen-Endpunkte zu erstellen VPC
-
Öffnen Sie die VPCKonsole
. Wählen Sie im linken Menü unter Virtual Private Cloud die Option Endpunkte aus. -
Wählen Sie Endpunkt erstellen aus. Erstellen Sie einen Endpunkt mit der folgenden Konfiguration:
-
Geben Sie für Name Tag
lambda-default-vpc
ein. -
Wählen Sie als Dienstkategorie die Option AWS Dienste aus.
-
Geben Sie unter Services
lambda
in das Suchfeld ein. Wählen Sie den Service im Formatcom.amazonaws.<region>.lambda
. -
Wählen Sie für VPCIhre Standardeinstellung VPC.
-
Aktivieren Sie für Subnetze die Kästchen neben jeder Availability Zone. Wählen Sie die richtige Subnetz-ID für jede Availability Zone.
-
Wählen Sie als IP-AdresstypIPv4.
-
Wählen Sie für Sicherheitsgruppen die VPC Standardsicherheitsgruppe (Gruppenname von
default
) und die Sicherheitsgruppe, die Sie zuvor erstellt haben (Gruppenname vonDocDBTutorial
). -
Behalten Sie die alle Standardeinstellung bei.
-
Wählen Sie Endpunkt erstellen aus.
-
-
Wählen Sie erneut Endpunkt erstellen. Erstellen Sie einen Endpunkt mit der folgenden Konfiguration:
-
Geben Sie für Name Tag
secretsmanager-default-vpc
ein. -
Wählen Sie als Dienstkategorie die Option AWS Dienste aus.
-
Geben Sie unter Services
secretsmanager
in das Suchfeld ein. Wählen Sie den Service im Formatcom.amazonaws.<region>.secretsmanager
. -
Wählen Sie für VPCIhre Standardeinstellung VPC.
-
Aktivieren Sie für Subnetze die Kästchen neben jeder Availability Zone. Wählen Sie die richtige Subnetz-ID für jede Availability Zone.
-
Wählen Sie als IP-AdresstypIPv4.
-
Wählen Sie für Sicherheitsgruppen die VPC Standardsicherheitsgruppe (Gruppenname von
default
) und die Sicherheitsgruppe, die Sie zuvor erstellt haben (Gruppenname vonDocDBTutorial
). -
Behalten Sie die alle Standardeinstellung bei.
-
Wählen Sie Endpunkt erstellen aus.
-
Damit ist der Abschnitt zur Einrichtung eines Clusters in diesem Tutorial abgeschlossen.
Erstellen der Ausführungsrolle
In den nächsten Schritten erstellen Sie Ihre Lambda-Funktion. Zunächst müssen Sie die Ausführungsrolle erstellen, die Ihrer Funktion die Berechtigung zum Zugriff auf Ihren Cluster gibt. Dazu erstellen Sie zunächst eine IAM Richtlinie und fügen diese Richtlinie dann einer IAM Rolle hinzu.
Um eine Richtlinie zu erstellen IAM
-
Öffnen Sie die Seite Richtlinien
in der IAM Konsole und wählen Sie Richtlinie erstellen aus. -
Wählen Sie die JSONRegisterkarte. Ersetzen Sie in der folgenden Richtlinie die Secrets Manager Manager-Ressource ARN in der letzten Zeile der Anweisung durch Ihr Geheimnis ARN von früher und kopieren Sie die Richtlinie in den Editor.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LambdaESMNetworkingAccess", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "kms:Decrypt" ], "Resource": "*" }, { "Sid": "LambdaDocDBESMAccess", "Effect": "Allow", "Action": [ "rds:DescribeDBClusters", "rds:DescribeDBClusterParameters", "rds:DescribeDBSubnetGroups" ], "Resource": "*" }, { "Sid": "LambdaDocDBESMGetSecretValueAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:DocumentDBSecret" } ] }
-
Wählen Sie Weiter: Tags und dann Weiter: Prüfen aus.
-
Geben Sie unter Name
AWSDocumentDBLambdaPolicy
ein. -
Wählen Sie Create Policy (Richtlinie erstellen) aus.
So erstellen Sie die IAM-Rolle
-
Öffnen Sie die Seite Rollen
in der IAM Konsole und wählen Sie Rolle erstellen aus. -
Wählen Sie für Vertrauenswürdige Entität auswählen die folgenden Optionen:
-
Vertrauenswürdiger Entitätstyp — AWS Dienst
-
Anwendungsfall — Lambda
-
Wählen Sie Weiter.
-
-
Wählen Sie für Berechtigungen hinzufügen die
AWSDocumentDBLambdaPolicy
Richtlinie aus, die Sie gerade erstellt haben, sowie die,AWSLambdaBasicExecutionRole
um Ihrer Funktion Berechtigungen zum Schreiben in Amazon CloudWatch Logs zu erteilen. -
Wählen Sie Weiter.
-
Geben Sie für Role name (Rollenname) den Namen
AWSDocumentDBLambdaExecutionRole
ein. -
Wählen Sie Create role (Rolle erstellen) aus.
So erstellen Sie die Lambda-Funktion:
Der folgende Beispielcode empfängt eine Amazon DocumentDB DocumentDB-Ereigniseingabe und verarbeitet die darin enthaltene Nachricht.
So erstellen Sie die Lambda-Funktion:
-
Kopieren Sie den Beispiel-Code in eine Datei mit dem Namen
index.js
. -
Erstellen Sie ein Bereitstellungspaket mit dem folgenden -Befehl.
zip function.zip index.js
-
Verwenden Sie den folgenden CLI Befehl, um die Funktion zu erstellen.
us-east-1
Ersetzen Sie es durch die AWS-Region, und123456789012
durch Ihre Konto-ID.aws lambda create-function \ --function-name ProcessDocumentDBRecords \ --zip-file fileb://function.zip --handler index.handler --runtime nodejs20.x \ --region us-east-1 \ --role arn:aws:iam::123456789012:role/AWSDocumentDBLambdaExecutionRole
Erstellen Sie die Zuordnung von Ereignisquellen in Lambda
Erstellen Sie die Ereignisquellenzuordnung, die Ihren Amazon DocumentDB DocumentDB-Change-Stream mit Ihrer Lambda-Funktion verknüpft. Nachdem Sie diese Ereignisquellenzuordnung erstellt haben, beginnt AWS Lambda sofort die Abfrage des Streams.
Die Zuordnung von Ereignisquellen erstellen
-
Öffnen Sie die Seite Funktionen
in der Lambda-Konsole. -
Wählen Sie die
ProcessDocumentDBRecords
-Funktion aus, die Sie zuvor erstellt haben. -
Wählen Sie die Registerkarte Konfiguration und dann im linken Menü Trigger aus.
-
Wählen Sie Add trigger.
-
Wählen Sie unter Trigger-Konfiguration für die Quelle Amazon DocumentDB aus.
-
Erstellen Sie die Zuordnung von Ereignisquellen mit der folgenden Konfiguration:
-
Amazon DocumentDB-Cluster — Wählen Sie den Cluster aus, den Sie zuvor erstellt haben.
-
Datenbankname —
docdbdemo
-
Name der Kollektion — Produkte
-
Chargengröße — 1
-
Startposition — Letzte
-
Authentifizierung — BASIC _ AUTH
-
Secrets Manager Manager-Schlüssel — Wählen
DocumentDBSecret
Sie den, den Sie gerade erstellt haben. -
Batchfenster — 1
-
Vollständige Konfiguration des Dokuments — UpdateLookup
-
-
Wählen Sie Hinzufügen aus. Die Erstellung Ihrer Zuordnung von Ereignisquellen kann einige Minuten dauern.
Testen Sie Ihre -Funktion – manueller Aufruf
Um zu testen, ob Sie Ihre Funktion und die Zuordnung von Ereignisquellen korrekt erstellt haben, rufen Sie Ihre Funktion mit dem Befehl invoke
auf. Kopieren Sie dazu zunächst das folgende Ereignis JSON in eine Datei mit dem Nameninput.txt
:
{ "eventSourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:canaryclusterb2a659a2-qo5tcmqkcl03", "events": [ { "event": { "_id": { "_data": "0163eeb6e7000000090100000009000041e1" }, "clusterTime": { "$timestamp": { "t": 1676588775, "i": 9 } }, "documentKey": { "_id": { "$oid": "63eeb6e7d418cd98afb1c1d7" } }, "fullDocument": { "_id": { "$oid": "63eeb6e7d418cd98afb1c1d7" }, "anyField": "sampleValue" }, "ns": { "db": "docdbdemo", "coll": "products" }, "operationType": "insert" } } ], "eventSource": "aws:docdb" }
Verwenden Sie dann den folgenden Befehl, um Ihre Funktion mit diesem Ereignis aufzurufen:
aws lambda invoke \ --function-name ProcessDocumentDBRecords \ --cli-binary-format raw-in-base64-out \ --region us-east-1 \ --payload file://input.txt out.txt
Sie sollten eine Antwort erhalten, die wie die folgende aussieht:
{ "StatusCode": 200, "ExecutedVersion": "$LATEST" }
Sie können überprüfen, ob Ihre Funktion das Ereignis erfolgreich verarbeitet hat, indem Sie CloudWatch Logs überprüfen.
Um den manuellen Aufruf über CloudWatch Logs zu überprüfen
-
Öffnen Sie die Seite Funktionen
in der Lambda-Konsole. -
Wählen Sie die Registerkarte „Überwachen“ und anschließend „ CloudWatch Protokolle anzeigen“. Dadurch gelangen Sie zu der spezifischen Protokollgruppe, die Ihrer Funktion in der CloudWatch Konsole zugeordnet ist.
-
Wählen Sie den neuesten Protokollstreams aus. In den Protokollnachrichten sollten Sie das Ereignis sehenJSON.
Testen Sie Ihre Funktion – fügen Sie einen Datensatz ein
Testen Sie Ihr end-to-end Setup, indem Sie direkt mit Ihrer Amazon DocumentDB DocumentDB-Datenbank interagieren. In den nächsten Schritten fügen Sie einen Datensatz ein, aktualisieren ihn und löschen ihn dann.
Um einen Datensatz einzufügen
-
Stellen Sie erneut eine Verbindung zu Ihrem Amazon DocumentDB-Cluster in Ihrer AWS Cloud9 Umgebung her.
-
Verwenden Sie diesen Befehl, um sicherzustellen, dass Sie gerade die
docdbdemo
-Datenbank verwenden:use docdbdemo
-
Fügen Sie einen Datensatz in die
products
-Sammlung derdocdbdemo
-Datenbank ein:db.products.insert({"name":"Pencil", "price": 1.00})
Testen Sie Ihre Funktion – aktualisieren Sie einen Datensatz
Aktualisieren Sie als Nächstes den gerade eingefügten Datensatz mit dem folgenden Befehl:
db.products.update( { "name": "Pencil" }, { $set: { "price": 0.50 }} )
Überprüfen Sie anhand von Logs, ob Ihre Funktion dieses Ereignis erfolgreich verarbeitet hat. CloudWatch
Testen Sie Ihre Funktion – löschen Sie einen Datensatz
Löschen Sie schließlich den Datensatz, den Sie gerade aktualisiert haben, mit dem folgenden Befehl:
db.products.remove( { "name": "Pencil" } )
Überprüfen Sie anhand von CloudWatch Logs, ob Ihre Funktion dieses Ereignis erfolgreich verarbeitet hat.
Bereinigen Ihrer Ressourcen
Sie können jetzt die Ressourcen, die Sie für dieses Tutorial erstellt haben, löschen, es sei denn, Sie möchten sie behalten. Durch das Löschen von AWS -Ressourcen, die Sie nicht mehr verwenden, können Sie verhindern, dass unnötige Gebühren in Ihrem AWS-Konto-Konto anfallen.
So löschen Sie die Lambda-Funktion:
-
Öffnen Sie die Seite Funktionen
der Lambda-Konsole. -
Wählen Sie die Funktion aus, die Sie erstellt haben.
-
Wählen Sie Aktionen, Löschen aus.
-
Geben Sie
delete
in das Texteingabefeld ein und wählen Sie Delete (Löschen) aus.
So löschen Sie die Ausführungsrolle
-
Öffnen Sie die Rollenseite
der IAM Konsole. -
Wählen Sie die von Ihnen erstellte Ausführungsrolle aus.
-
Wählen Sie Löschen.
-
Geben Sie den Namen der Rolle in das Texteingabefeld ein und wählen Sie Delete (Löschen) aus.
Um die VPC Endpoints zu löschen
-
Öffnen Sie die VPCKonsole
. Wählen Sie im linken Menü unter Virtual Private Cloud die Option Endpunkte aus. -
Wählen Sie die Endpunkte aus, die Sie erstellt haben.
-
Wählen Sie „Aktionen“, „VPCEndpoints löschen“.
-
Geben Sie
delete
in das Texteingabefeld ein. -
Wählen Sie Löschen.
So löschen Sie den Amazon DocumentDB-Cluster
-
Öffnen Sie die Amazon DocumentDB DocumentDB-Konsole
. -
Wählen Sie den Amazon DocumentDB-Cluster aus, den Sie für dieses Tutorial erstellt haben, und deaktivieren Sie den Löschschutz.
-
Wählen Sie auf der Cluster-Hauptseite erneut Ihren Amazon DocumentDB-Cluster aus.
-
Wählen Sie Aktionen, Löschen aus.
-
Wählen Sie für Finalen Cluster-Snapshot erstellen die Option Nein aus.
-
Geben Sie
delete
in das Texteingabefeld ein. -
Wählen Sie Löschen.
So löschen Sie das Secret im Secrets Manager
-
Öffnen Sie die Secrets Manager-Konsole
. -
Wählen Sie das Secret aus, das Sie für dieses Tutorial erstellt haben.
-
Wählen Sie Aktionen, Secret löschen.
-
Wählen Sie Schedule deletion.
Um die EC2 Amazon-Sicherheitsgruppe zu löschen
-
Öffnen Sie die EC2Konsole
. Wählen Sie unter Netzwerk und Sicherheit die Option Sicherheitsgruppen aus. -
Wählen Sie die Sicherheitsgruppe, die Sie für dieses Tutorial erstellt haben.
-
Wählen Sie Aktionen, Sicherheitsgruppen löschen.
-
Wählen Sie Löschen.
Um die AWS Cloud9 Umgebung zu löschen
-
Öffnen Sie die AWS Cloud9 -Konsole
. -
Wählen Sie die Umgebung aus, die Sie für dieses Tutorial erstellt haben.
-
Wählen Sie Löschen.
-
Geben Sie
delete
in das Texteingabefeld ein. -
Wählen Sie Löschen.