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 AWS Cloud9 Umgebung
- Erstellen der EC2-Sicherheitsgruppe
- Erstellen Sie den DocumentDB-Cluster
- Erstellen des Secrets in Secrets Manager
- Installieren der mongo-Shell
- Mit dem DocumentDB-Cluster verbinden
- Change-Streams aktivieren
- Schnittstellen-VPC-Endpunkte erstellen
- 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/signup
. 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 jederzeit Ihre aktuelle Kontoaktivität anzeigen und Ihr Konto verwalten. Rufen Sie dazu 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 den Root-Benutzer.
Anweisungen finden Sie unter Aktivieren eines virtuellen MFA-Geräts für Ihren AWS-Konto Root-Benutzer (Konsole) im IAM-Benutzerhandbuch.
Erstellen eines Benutzers mit Administratorzugriff
-
Aktivieren Sie das IAM Identity Center.
Anweisungen finden Sie unter Aktivieren AWS IAM Identity Center im AWS IAM Identity Center Benutzerhandbuch.
-
Gewähren Sie einem Administratorbenutzer im IAM Identity Center Benutzerzugriff.
Ein Tutorial zur Verwendung von IAM-Identity-Center-Verzeichnis als Identitätsquelle finden Sie IAM-Identity-Center-Verzeichnis im Benutzerhandbuch unter Benutzerzugriff mit der Standardeinstellung konfigurieren.AWS IAM Identity Center
Anmelden als Administratorbenutzer
-
Um sich mit Ihrem IAM-Identity-Center-Benutzer anzumelden, verwenden Sie die Anmelde-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 Access-Portal.
Weiteren Benutzern Zugriff zuweisen
-
Erstellen Sie im IAM-Identity-Center einen Berechtigungssatz, der den bewährten Vorgehensweisen für die Anwendung von geringsten Berechtigungen 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 Bash-CLI-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 AWS Cloud9 Umgebung
![Schritt 1: Erstellen Sie eine AWS Cloud9 Umgebung](images/docdb_tutorial_1.png)
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 Schnittstellen-VPC-Endpunkte erstellen. Anschließend können Sie direkt mit den Schritten zur Funktionserstellung fortfahren.
Erstellen Sie zunächst eine AWS Cloud9 Umgebung. Sie werden diese Umgebung in diesem Tutorial verwenden, um eine Verbindung zu Ihrem DocumentDB-Cluster herzustellen und ihn abzufragen.
Um eine AWS Cloud9 Umgebung zu schaffen
-
Öffnen Sie die Cloud9-Konsole
und wählen Sie Umgebung erstellen. -
Erstellen Sie eine Umgebung mit der folgenden Konfiguration:
-
Unter Details:
-
Name (Name –
DocumentDBCloud9Environment
-
Umgebungstyp – Neue EC2-Instance
-
-
Unter Neue EC2-Instance:
-
Instance-Typ –
t2.micro
(1 GiB RAM + 1 vCPU) -
Plattform – Amazon Linux 2
-
Timeout – 30 Minuten
-
-
Unter Netzwerkeinstellungen:
-
Verbindung — AWS Systems Manager (SSM)
-
Erweitern Sie das Dropdown-Menü für VPC-Einstellungen.
-
Amazon Virtual Private Cloud (VPC) – Wählen Sie Ihre Standard-VPC.
-
Subnetz – Keine Präferenz
-
-
Behalten Sie die alle Standardeinstellung bei.
-
-
Wählen Sie Erstellen. Die Bereitstellung Ihrer neuen AWS Cloud9 Umgebung kann mehrere Minuten dauern.
Erstellen der EC2-Sicherheitsgruppe
![Schritt 2 Erstellen einer EC2-Sicherheitsgruppe](images/docdb_tutorial_2.png)
Erstellen Sie als Nächstes eine EC2-Sicherheitsgruppe mit Regeln, die den Datenverkehr zwischen Ihrem DocumentDB-Cluster und Ihrer Cloud9-Umgebung zulassen.
Um eine EC2-Sicherheitsgruppe zu erstellen
-
Öffnen Sie die EC2-Konsole
. 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:
-
Name der Sicherheitsgruppe –
DocDBTutorial
-
Beschreibung – Sicherheitsgruppe für den Datenverkehr zwischen Cloud9 und DocumentDB.
-
VPC – Wählen Sie Ihre Standard-VPC aus.
-
-
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 – Benutzerdefiniertes 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 DocumentDB-Cluster
![Schritt 3: Erstellen Sie einen DocumentDB-Cluster](images/docdb_tutorial_3.png)
In diesem Schritt erstellen Sie einen DocumentDB-Cluster mithilfe der Sicherheitsgruppe aus dem vorigen Schritt.
Um einen DocumentDB-Cluster zu erstellen
-
Öffnen Sie die 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 Instances – 1.
-
-
Unter Authentifizierung:
-
Geben Sie den Benutzernamen und das Passwort ein, die für die Verbindung zu 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 Ihre Standard-VPC.
-
Subnetz-Gruppe – standard
-
VPC-Sicherheitsgruppen – Wählen Sie neben der
default (VPC)
auch dieDocDBTutorial (VPC)
-Sicherheitsgruppe aus, die Sie im vorherigen Schritt erstellt haben.
-
-
Behalten Sie die alle Standardeinstellung bei.
-
-
Wählen Sie Cluster erstellen. Die Bereitstellung Ihres DocumentDB-Clusters kann einige Minuten dauern.
Erstellen des Secrets in Secrets Manager
![Schritt 4: Erstellen Sie ein Geheimnis in Secrets Manager](images/docdb_tutorial_4.png)
Um manuell auf Ihren DocumentDB-Cluster zuzugreifen, müssen Sie den Benutzernamen und das 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:
-
Secret-Typ – Anmeldeinformationen für die Amazon-DocumentDB-Datenbank
-
Geben Sie unter Anmeldeinformationen den Benutzernamen und das Passwort ein, die Sie für den Zugriff auf Ihren DocumentDB-Cluster verwenden werden.
-
Datenbank – Wählen Sie Ihren DocumentDB-Cluster aus.
-
Wählen Sie Weiter aus.
-
-
-
Wählen Sie unter Secret konfigurieen eine der folgenden Optionen aus:
-
Secret-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 den Secret ARN Ihres Geheimnisses. Sie werden es in einem späteren Schritt noch benötigen.
Installieren der mongo-Shell
![Schritt 5 Installieren der mongo-Shell](images/docdb_tutorial_5.png)
In diesem Schritt installieren Sie die mongo-Shell in Ihrer Cloud9-Umgebung. Die mongo-Shell ist ein Befehlszeilenprogramm, mit dem Sie eine Verbindung zu Ihrem DocumentDB-Cluster herstellen und ihn abfragen können.
Um die mongo-Shell in Ihrer Cloud9-Umgebung zu installieren
-
Öffnen Sie die Cloud9-Konsole
. Klicken Sie neben der DocumentDBCloud9Environment
-Umgebung, die Sie zuvor erstellt haben, auf den Link Öffnen unter der Spalte Cloud9 IDE. -
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
Mit dem DocumentDB-Cluster verbinden
![Schritt 6 Mit dem DocumentDB-Cluster verbinden](images/docdb_tutorial_6.png)
Sie sind jetzt bereit, mithilfe der mongo-Shell eine Verbindung zu Ihrem DocumentDB-Cluster herzustellen.
So stellen Sie eine Verbindung zu Ihrem DocumentDB-Cluster her
-
Öffnen Sie die 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 verbinden die Option Kopieren aus.
-
In Ihrer Cloud9-Umgebung fügen Sie diesen Befehl 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
![Schritt 7 Change-Streams aktivieren](images/docdb_tutorial_7.png)
In diesem Tutorial verfolgen Sie Änderungen an der products
-Sammlung der docdbdemo
-Datenbank in Ihrem 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 Cloud9-Umgebung sicher, dass Sie immer noch mit Ihrem 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) }
Schnittstellen-VPC-Endpunkte erstellen
![Schritt 8 Schnittstellen-VPC-Endpunkte erstellen](images/docdb_tutorial_8.png)
Erstellen Sie als Nächstes Schnittstellen-VPC-Endpunkte, um sicherzustellen, dass Lambda und Secrets Manager (der später zum Speichern unserer Cluster-Anmeldeinformationen verwendet wird) eine Verbindung zu Ihrer Standard-VPC herstellen können.
Um Schnittstellen-VPC-Endpunkte zu erstellen
-
Öffnen Sie die VPC;-Konsole
. 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 bei VPC Ihre Standard-VPC aus.
-
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 unter IP-Adresstyp IPv4 aus.
-
Wählen Sie für Sicherheitsgruppen die Standard-VPC-Sicherheitsgruppe (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 Servicekategorie 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 bei VPC Ihre Standard-VPC aus.
-
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 unter IP-Adresstyp IPv4 aus.
-
Wählen Sie für Sicherheitsgruppen die Standard-VPC-Sicherheitsgruppe (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
![Schritt 9 Erstellen der Ausführungsrolle](images/docdb_tutorial_9.png)
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 verknüpfen diese dann mit einer IAM-Rolle.
So erstellen Sie eine IAM-Richtlinie
-
Öffnen Sie in der IAM-Konsole die Seite Richtlinien
und wählen Sie dann Richtlinie erstellen aus. -
Wählen Sie den Tab JSON. Ersetzen Sie in der folgenden Richtlinie den ARN der Secrets-Manager-Ressource in der letzten Zeile der Anweisung durch Ihren geheimen ARN von zuvor, 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 Richtlinie erstellen aus.
So erstellen Sie die IAM-Rolle
-
Öffnen Sie die Seite Rollen
in der IAM-Konsole und wählen Sie Rolle erstellen. -
Wählen Sie für Vertrauenswürdige Entität auswählen die folgenden Optionen:
-
Typ der vertrauenswürdigen Entität — AWS Dienst
-
Anwendungsfall – Lambda
-
Wählen Sie Weiter aus.
-
-
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 aus.
-
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:
![Schritt 10 Erstellen der Lambda-Funktion](images/docdb_tutorial_10.png)
Der folgende Beispiel-Code empfängt eine 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. Ersetzen Sie
us-east-1
durch Ihre 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
![Schritt 11 Erstellen Sie die Zuordnung von Ereignisquellen in Lambda](images/docdb_tutorial_11.png)
Erstellen Sie die Zuordnung von Ereignisquellen, die Ihren DocumentDB-Change-Stream mit Ihrer Lambda-Funktion verknüpft. Nachdem Sie diese Ereignisquellenzuordnung erstellt haben, wird AWS Lambda sofort mit der Abfrage des Streams begonnen.
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ü Auslöser.
-
Wählen Sie Add trigger.
-
Wählen Sie unter Trigger-Konfiguration als Quelle die Option DocumentDB aus.
-
Erstellen Sie die Zuordnung von Ereignisquellen mit der folgenden Konfiguration:
-
DocumentDB-Cluster – Wählen Sie den Cluster aus, den Sie zuvor erstellt haben.
-
Name der Datenbank –
docdbdemo
-
Name der Kollektion – Produkte
-
Batch size – 1
-
Startposition – Neueste
-
Authentifizierung – BASIC_AUTH
-
Secrets-Manager-Schlüssel – Wählen Sie den
DocumentDBSecret
aus, 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
![Schritt 12 Testen Sie Ihre Funktion mit einem manuellen Aufruf](images/docdb_tutorial_12.png)
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 die folgende Ereignis-JSON in eine Datei mit dem Namen input.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 die Option 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 die Ereignis-JSON sehen.
Testen Sie Ihre Funktion – fügen Sie einen Datensatz ein
![Schritt 13 Testen Sie Ihre Funktion, indem Sie einen Datensatz einfügen.](images/docdb_tutorial_13.png)
Testen Sie Ihr end-to-end Setup, indem Sie direkt mit Ihrer 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 DocumentDB-Cluster in Ihrer 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
![Schritt 14 Testen Sie Ihre Funktion, indem Sie einen Datensatz aktualisieren.](images/docdb_tutorial_14.png)
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 CloudWatch Logs, ob Ihre Funktion dieses Ereignis erfolgreich verarbeitet hat.
Testen Sie Ihre Funktion – löschen Sie einen Datensatz
![Schritt 15 Testen Sie Ihre Funktion, indem Sie einen Datensatz löschen.](images/docdb_tutorial_15.png)
Löschen Sie schließlich den Datensatz, den Sie gerade aktualisiert haben, mit dem folgenden Befehl:
db.products.remove( { "name": "Pencil" } )
Vergewissern Sie sich, dass Ihre Funktion dieses Ereignis erfolgreich verarbeitet hat, indem Sie die Option CloudWatch Logs überprüfen.
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 Seite Roles
in der IAM-Konsole. -
Wählen Sie die von Ihnen erstellte Ausführungsrolle aus.
-
Wählen Sie Löschen aus.
-
Geben Sie den Namen der Rolle in das Texteingabefeld ein und wählen Sie Delete (Löschen) aus.
Löschen von VPC-Endpunkten
-
Öffnen Sie die VPC;-Konsole
. 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 Actions (Aktionen), Delete VPC Endpoint (VPC-Endpunkte löschen).
-
Geben Sie
delete
in das Texteingabefeld ein. -
Wählen Sie Löschen aus.
So löschen Sie den Amazon DocumentDB-Cluster
-
Öffnen Sie die DocumentDB-Konsole
. -
Wählen Sie den 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 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 aus.
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.
Löschen einer Amazon-EC2-Sicherheitsgruppe
-
Öffnen Sie die EC2-Konsole
. 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 aus.
Um die Cloud9-Umgebung zu löschen
-
Öffnen Sie die Cloud9-Konsole
. -
Wählen Sie die Umgebung aus, die Sie für dieses Tutorial erstellt haben.
-
Wählen Sie Löschen aus.
-
Geben Sie
delete
in das Texteingabefeld ein. -
Wählen Sie Löschen.