Tutorial: Lambda mit API Gateway verwenden - AWS Lambda

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: Lambda mit API Gateway verwenden

In diesem Tutorial erstellen Sie eine, REST API über die Sie mithilfe einer Anfrage eine Lambda-Funktion aufrufen. HTTP Ihre Lambda-Funktion führt Erstellungs-, Lese-, Aktualisierungs- und Löschvorgänge (CRUD) in einer DynamoDB-Tabelle durch. Diese Funktion wird hier zur Veranschaulichung bereitgestellt, aber Sie werden lernen, ein API Gateway zu konfigurieren RESTAPI, das jede Lambda-Funktion aufrufen kann.

In diesem Tutorial verwendete Services und Ressourcen

Die Verwendung von API Gateway bietet Benutzern einen sicheren HTTP Endpunkt zum Aufrufen Ihrer Lambda-Funktion und kann dazu beitragen, große Mengen von Aufrufen an Ihre Funktion zu verwalten, indem der Datenverkehr gedrosselt und Anrufe automatisch validiert und autorisiert werden. API APIGateway bietet auch flexible Sicherheitskontrollen mit AWS Identity and Access Management (IAM) und Amazon Cognito. Dies ist nützlich für Anwendungsfälle, in denen eine vorherige Autorisierung für Aufrufe zu Ihrer Anwendung erforderlich ist.

Um dieses Tutorial abzuschließen, werden Sie die folgenden Phasen durchlaufen:

  1. Erstellen und Konfigurieren einer Lambda-Funktion in Python oder Node.js, um Operationen in einer DynamoDB-Tabelle auszuführen.

  2. Erstellen Sie ein REST API API In-Gateway, um eine Verbindung zu Ihrer Lambda-Funktion herzustellen.

  3. Erstellen einer DynamoDB-Tabelle und Testen dieser Tabelle mit Ihrer Lambda-Funktion in der Konsole.

  4. Stellen Sie Ihr Setup bereit API und testen Sie es mit curl in einem Terminal.

Wenn Sie diese Phasen abschließen, lernen Sie, wie Sie mit API Gateway einen HTTP Endpunkt erstellen, der eine Lambda-Funktion in jeder Größenordnung sicher aufrufen kann. Außerdem erfahren SieAPI, wie Sie Ihr System in der Konsole bereitstellen und testen, indem Sie eine HTTP Anfrage über ein Terminal senden.

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
  1. Öffnen Sie https://portal.aws.amazon.com/billing/die Anmeldung.

  2. 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. Du kannst jederzeit deine aktuellen Kontoaktivitäten einsehen und dein Konto verwalten, indem du zu https://aws.amazon.com/gehst und Mein Konto auswählst.

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
  1. Melden Sie sich AWS Management Consoleals 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.

  2. 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
  1. Aktivieren Sie IAM Identity Center.

    Anweisungen finden Sie unter Aktivieren AWS IAM Identity Center im AWS IAM Identity Center Benutzerhandbuch.

  2. 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
Weiteren Benutzern Zugriff zuweisen
  1. 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.

  2. 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 einer Berechtigungsrichtlinie

Schritt 1 Erstellen einer Berechtigungsrichtlinie

Bevor Sie eine Ausführungsrolle für Ihre Lambda-Funktion erstellen können, müssen Sie zunächst eine Berechtigungsrichtlinie erstellen, um Ihrer Funktion die Erlaubnis zu erteilen, auf die erforderlichen AWS Ressourcen zuzugreifen. In diesem Tutorial ermöglicht die Richtlinie Lambda, CRUD Operationen an einer DynamoDB-Tabelle durchzuführen und in Amazon Logs zu schreiben. CloudWatch

So erstellen Sie die Richtlinie
  1. Öffnen Sie die Seite Richtlinien der Konsole. IAM

  2. Wählen Sie Create Policy (Richtlinie erstellen) aus.

  3. Wählen Sie die JSONRegisterkarte und fügen Sie dann die folgende benutzerdefinierte Richtlinie in den JSON Editor ein.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1428341300017", "Action": [ "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "", "Resource": "*", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow" } ] }
  4. Wählen Sie Next: Tags (Weiter: Tags) aus.

  5. Klicken Sie auf Weiter: Prüfen.

  6. Geben Sie unter Review policy (Richtlinie prüfen) für den Richtlinien-Namen lambda-apigateway-policy ein.

  7. Wählen Sie Create Policy (Richtlinie erstellen) aus.

Erstellen einer Ausführungsrolle

Schritt 2 Erstellen einer Ausführungsrolle

Eine Ausführungsrolle ist eine AWS Identity and Access Management (IAM) -Rolle, die einer Lambda-Funktion die Erlaubnis erteilt, auf AWS Dienste und Ressourcen zuzugreifen. Damit Ihre Funktion Vorgänge an einer DynamoDB-Tabelle ausführen kann, fügen Sie die Berechtigungsrichtlinie an, die Sie im vorherigen Schritt erstellt haben.

So erstellen Sie eine Ausführungsrolle und fügen Ihre benutzerdefinierte Berechtigungsrichtlinie hinzu
  1. Öffnen Sie die Rollenseite der IAM Konsole.

  2. Wählen Sie Rolle erstellen.

  3. Wählen Sie als Typ der vertrauenswürdigen Entität AWS -Service und dann als Anwendungsfall Lambda aus.

  4. Wählen Sie Weiter.

  5. Geben Sie im Feld für die Richtliniensuche lambda-apigateway-policy ein.

  6. Wählen Sie in den Suchergebnissen die von Ihnen erstellte Richtlinie (lambda-apigateway-policy) und dann die Option Next (Weiter) aus.

  7. Geben Sie unter Role details (Rollendetails) für den Role name (Rollennamen) lambda-apigateway-role ein und wählen Sie dann Create role (Rolle erstellen) aus.

Später im Tutorial benötigen Sie den Amazon-Ressourcennamen (ARN) der Rolle, die Sie gerade erstellt haben. Wählen Sie auf der Seite Rollen der IAM Konsole den Namen Ihrer Rolle (lambda-apigateway-role) und kopieren Sie die Rolle, die auf der Übersichtsseite ARN angezeigt wird.

Erstellen der Funktion

Schritt 3: Erstellen der Funktion

Das folgende Codebeispiel empfängt eine Ereigniseingabe von API Gateway, die einen Vorgang angibt, der für die DynamoDB-Tabelle ausgeführt werden soll, die Sie erstellen werden, und einige Nutzdaten. Wenn die von der Funktion empfangenen Parameter gültig sind, führt sie die angeforderte Operation für die Tabelle aus.

Node.js
Beispiel index.mjs

Notieren Sie sich die Einstellung. region Dies muss mit dem AWS-Region Ort übereinstimmen, an dem Sie die Funktion bereitstellen und die DynamoDB-Tabelle erstellen.

import { DynamoDBDocumentClient, PutCommand, GetCommand, UpdateCommand, DeleteCommand} from "@aws-sdk/lib-dynamodb"; import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; const ddbClient = new DynamoDBClient({ region: "us-east-2" }); const ddbDocClient = DynamoDBDocumentClient.from(ddbClient); // Define the name of the DDB table to perform the CRUD operations on const tablename = "lambda-apigateway"; /** * Provide an event that contains the following keys: * * - operation: one of 'create,' 'read,' 'update,' 'delete,' or 'echo' * - payload: a JSON object containing the parameters for the table item * to perform the operation on */ export const handler = async (event, context) => { const operation = event.operation; if (operation == 'echo'){ return(event.payload); } else { event.payload.TableName = tablename; let response; switch (operation) { case 'create': response = await ddbDocClient.send(new PutCommand(event.payload)); break; case 'read': response = await ddbDocClient.send(new GetCommand(event.payload)); break; case 'update': response = ddbDocClient.send(new UpdateCommand(event.payload)); break; case 'delete': response = ddbDocClient.send(new DeleteCommand(event.payload)); break; default: response = 'Unknown operation: ${operation}'; } console.log(response); return response; } };
Anmerkung

In diesem Beispiel ist der Name der DynamoDB-Tabelle als Variable in Ihrem Funktionscode definiert. In einer realen Anwendung besteht die bewährte Methode darin, diesen Parameter als Umgebungsvariable zu übergeben und den Tabellennamen nicht fest zu codieren. Weitere Informationen finden Sie unter AWS Lambda Umgebungsvariablen verwenden.

So erstellen Sie die Funktion
  1. Speichern Sie das Codebeispiel als eine Datei mit dem Namen index.mjs und bearbeiten Sie gegebenenfalls die im Code angegebene AWS Region. Die im Code angegebene Region muss mit der Region übereinstimmen, in der Sie Ihre DynamoDB-Tabelle später im Tutorial erstellen.

  2. Erstellen Sie ein Bereitstellungspaket mit dem folgenden zip-Befehl.

    zip function.zip index.mjs
  3. Erstellen Sie mit dem create-function AWS CLI Befehl eine Lambda-Funktion. Geben Sie für den role Parameter den Amazon-Ressourcennamen (ARN) der Ausführungsrolle ein, den Sie zuvor kopiert haben.

    aws lambda create-function \ --function-name LambdaFunctionOverHttps \ --zip-file fileb://function.zip \ --handler index.handler \ --runtime nodejs20.x \ --role arn:aws:iam::123456789012:role/service-role/lambda-apigateway-role
Python 3
Beispiel LambdaFunctionOverHttps.py
import boto3 # Define the DynamoDB table that Lambda will connect to table_name = "lambda-apigateway" # Create the DynamoDB resource dynamo = boto3.resource('dynamodb').Table(table_name) # Define some functions to perform the CRUD operations def create(payload): return dynamo.put_item(Item=payload['Item']) def read(payload): return dynamo.get_item(Key=payload['Key']) def update(payload): return dynamo.update_item(**{k: payload[k] for k in ['Key', 'UpdateExpression', 'ExpressionAttributeNames', 'ExpressionAttributeValues'] if k in payload}) def delete(payload): return dynamo.delete_item(Key=payload['Key']) def echo(payload): return payload operations = { 'create': create, 'read': read, 'update': update, 'delete': delete, 'echo': echo, } def lambda_handler(event, context): '''Provide an event that contains the following keys: - operation: one of the operations in the operations dict below - payload: a JSON object containing parameters to pass to the operation being performed ''' operation = event['operation'] payload = event['payload'] if operation in operations: return operations[operation](payload) else: raise ValueError(f'Unrecognized operation "{operation}"')
Anmerkung

In diesem Beispiel ist der Name der DynamoDB-Tabelle als Variable in Ihrem Funktionscode definiert. In einer realen Anwendung besteht die bewährte Methode darin, diesen Parameter als Umgebungsvariable zu übergeben und den Tabellennamen nicht fest zu codieren. Weitere Informationen finden Sie unter AWS Lambda Umgebungsvariablen verwenden.

So erstellen Sie die Funktion
  1. Speichern Sie das Codebeispiel als Datei mit dem Namen LambdaFunctionOverHttps.py.

  2. Erstellen Sie ein Bereitstellungspaket mit dem folgenden zip-Befehl.

    zip function.zip LambdaFunctionOverHttps.py
  3. Erstellen Sie mit dem create-function AWS CLI Befehl eine Lambda-Funktion. Geben Sie für den role Parameter den Amazon-Ressourcennamen (ARN) der Ausführungsrolle ein, den Sie zuvor kopiert haben.

    aws lambda create-function \ --function-name LambdaFunctionOverHttps \ --zip-file fileb://function.zip \ --handler LambdaFunctionOverHttps.lambda_handler \ --runtime python3.12 \ --role arn:aws:iam::123456789012:role/service-role/lambda-apigateway-role

Rufen Sie die Funktion mit dem AWS CLI

Schritt 4: Rufen Sie die Funktion mit dem auf AWS CLI

Bevor Sie Ihre Funktion in API Gateway integrieren, vergewissern Sie sich, dass Sie die Funktion erfolgreich bereitgestellt haben. Erstellen Sie ein Testereignis mit den Parametern, die Ihr API Gateway an Lambda API sendet, und verwenden Sie den AWS CLI invoke Befehl, um Ihre Funktion auszuführen.

Um die Lambda-Funktion aufzurufen mit dem AWS CLI
  1. Speichern Sie Folgendes JSON als Datei mit dem Namen. input.txt

    { "operation": "echo", "payload": { "somekey1": "somevalue1", "somekey2": "somevalue2" } }
  2. Führen Sie den Befehl invoke AWS CLI aus.

    aws lambda invoke \ --function-name LambdaFunctionOverHttps \ --payload file://input.txt outputfile.txt \ --cli-binary-format raw-in-base64-out

    Die cli-binary-format Option ist erforderlich, wenn Sie AWS CLI Version 2 verwenden. Um dies zur Standardeinstellung zu machen, führen Sie aws configure set cli-binary-format raw-in-base64-out aus. Weitere Informationen finden Sie unter Von AWS CLI unterstützte globale Befehlszeilenoptionen im AWS Command Line Interface -Benutzerhandbuch für Version 2.

    Sie sollten die folgende Antwort sehen:

    { "StatusCode": 200, "ExecutedVersion": "LATEST" }
  3. Vergewissern Sie sich, dass Ihre Funktion den echo Vorgang ausgeführt hat, den Sie im JSON Testereignis angegeben haben. Überprüfen Sie die outputfile.txt-Datei und stellen Sie sicher, dass diese Folgendes enthält:

    {"somekey1": "somevalue1", "somekey2": "somevalue2"}

Erstellen Sie ein REST API verwendendes API Gateway

Schritt 5: Erstellen Sie das API

In diesem Schritt erstellen Sie das API Gateway, mit dem REST API Sie Ihre Lambda-Funktion aufrufen werden.

Um das zu erstellen API
  1. Öffnen Sie die APIGateway-Konsole.

  2. Wählen Sie Erstellen API.

  3. Wählen Sie in dem RESTAPIFeld Build aus.

  4. Lassen Sie unter APIDetails die API Option Neu ausgewählt und geben Sie als APINamen einDynamoDBOperations.

  5. Wählen Sie Erstellen ausAPI.

Erstellen Sie eine Ressource auf Ihrem REST API

Schritt 6: Erstellen Sie die API Ressource

Um eine HTTP Methode zu Ihrer hinzuzufügenAPI, müssen Sie zunächst eine Ressource erstellen, auf der diese Methode ausgeführt werden kann. Hier erstellen Sie die Ressource zur Verwaltung Ihrer DynamoDB-Tabelle.

So erstellen Sie die Ressource
  1. Wählen Sie in der APIGateway-Konsole auf der Seite Ressourcen für Sie API die Option Create Resource aus.

  2. Geben Sie im Feld Resource details (Ressourcendetails) für Resource name (Ressourcenname) DynamoDBManager ein.

  3. Wählen Sie Create Resource (Ressource erstellen) aus.

Erstellen Sie eine HTTP POST Methode

Schritt 7: Erstellen Sie die HTTP POST Methode

In diesem Schritt erstellen Sie eine Methode (POST) für Ihre DynamoDBManager-Ressource. Sie verknüpfen diese POST Methode mit Ihrer Lambda-Funktion, sodass API Gateway Ihre Lambda-Funktion aufruft, wenn die Methode eine HTTP Anfrage empfängt.

Anmerkung

Für die Zwecke dieses Tutorials wird eine HTTP Methode (POST) verwendet, um eine einzelne Lambda-Funktion aufzurufen, die alle Operationen in Ihrer DynamoDB-Tabelle ausführt. In einer echten Anwendung ist es am besten, für jede Operation eine andere Lambda-Funktion und HTTP -Methode zu verwenden. Weitere Informationen finden Sie bei Serverless Land unter The Lambda monolith.

So erstellen Sie die POST-Methode
  1. Vergewissern Sie sichAPI, dass die /DynamoDBManager Ressource auf der Seite Ressourcen für Sie hervorgehoben ist. Wählen Sie dann im Bereich Methods (Methoden) die Option Create Method (Methode erstellen) aus.

  2. Wählen Sie als Methodentyp die Option POST.

  3. Lassen Sie für den Integration type (Integrationstyp) die Option Lambda function (Lambda-Funktion) ausgewählt.

  4. Wählen Sie für die Lambda-Funktion den Amazon-Ressourcennamen (ARN) für Ihre Funktion (LambdaFunctionOverHttps).

  5. Wählen Sie Methode erstellen aus.

Erstellen einer DynamoDB-Tabelle

Schritt 8 Erstellen einer DynamoDB-Tabelle

Erstellen Sie eine leere DynamoDB-Tabelle, an der Ihre Lambda-Funktion Operationen ausführtCRUD.

Erstellen einer DynamoDB-Tabelle
  1. Öffnen Sie die Seite Tables (Tabellen) in der DynamoDB-Konsole.

  2. Wählen Sie Create table (Tabelle erstellen) aus.

  3. Führen Sie unter Tabellendetails die folgenden Schritte aus:

    1. Geben Sie für Table name (Tabellenname) lambda-apigateway ein.

    2. Geben Sie für Partitionsschlüssel id ein und behalten Sie den Datentyp als Zeichenfolge bei.

  4. Behalten Sie unter Table settings (Tabelleneinstellungen) die Default settings (Standardeinstellungen) bei.

  5. Wählen Sie Create table (Tabelle erstellen) aus.

Testen Sie die Integration von API Gateway, Lambda und DynamoDB

Schritt 9: Testen Sie die Integration von API Gateway, Lambda und DynamoDB

Sie sind jetzt bereit, die Integration Ihrer API API Gateway-Methode mit Ihrer Lambda-Funktion und Ihrer DynamoDB-Tabelle zu testen. Mithilfe der API Gateway-Konsole senden Sie mithilfe der Testfunktion der Konsole Anfragen direkt an Ihre POST Methode. In diesem Schritt verwenden Sie zuerst eine create-Operation, um Ihrer DynamoDB-Tabelle ein neues Element hinzuzufügen, und verwenden dann eine update-Operation, um das Element zu ändern.

Test 1: So erstellen Sie ein neues Element in Ihrer DynamoDB-Tabelle
  1. Wählen Sie in der APIGateway-Konsole Ihr API (DynamoDBOperations).

  2. Wählen Sie die POSTMethode unter der DynamoDBManager Ressource aus.

    Wählen Sie die POST Methode unter der DynamoDBManager Ressource aus.
  3. Wählen Sie die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte anzuzeigen.

  4. Lassen Sie unter Test method (Testmethode) die Felder Query strings (Query-Strings) und Headers (Header) leer. Fügen Sie in das Feld Hauptteil der Anfrage Folgendes einJSON:

    { "operation": "create", "payload": { "Item": { "id": "1234ABCD", "number": 5 } } }
  5. Wählen Sie Test aus.

    Die Ergebnisse, die nach Abschluss des Tests angezeigt werden, sollten den Status 200 anzeigen. Dieser Statuscode zeigt an, dass die create-Operation erfolgreich war.

    Überprüfen Sie zur Bestätigung, ob Ihre DynamoDB-Tabelle jetzt das neue Element enthält.

  6. Öffnen Sie die Seite Tabellen der DynamoDB-Konsole und wählen Sie die lambda-apigateway-Tabelle aus.

  7. Wählen Sie Explore table items (Tabellenelemente erkunden) aus. Im Bereich Items returned (Zurückgegebene Elemente) sollten ein Element mit der id (ID) 1234ABCD und der number (Nummer) 5 angezeigt werden.

Test 2: So aktualisieren Sie das Element in Ihrer DynamoDB-Tabelle
  1. Kehren Sie in der APIGateway-Konsole zur Registerkarte Test Ihrer POST Methode zurück.

  2. Lassen Sie unter Test method (Testmethode) die Felder Query strings (Query-Strings) und Headers (Header) leer. Fügen Sie in das Feld Hauptteil der Anfrage Folgendes einJSON:

    { "operation": "update", "payload": { "Key": { "id": "1234ABCD" }, "UpdateExpression": "SET #num = :newNum", "ExpressionAttributeNames": { "#num": "number" }, "ExpressionAttributeValues": { ":newNum": 10 } } }
  3. Wählen Sie Test aus.

    Die Ergebnisse, die nach Abschluss des Tests angezeigt werden, sollten den Status 200 anzeigen. Dieser Statuscode zeigt an, dass die update-Operation erfolgreich war.

    Überprüfen Sie zur Bestätigung, ob das Element in Ihrer DynamoDB-Tabelle geändert wurde.

  4. Öffnen Sie die Seite Tabellen der DynamoDB-Konsole und wählen Sie die lambda-apigateway-Tabelle aus.

  5. Wählen Sie Explore table items (Tabellenelemente erkunden) aus. Im Bereich Items returned (Zurückgegebene Elemente) sollten ein Element mit der id (ID) 1234ABCD und der number (Nummer) 10 angezeigt werden.

Stellen Sie den bereit API

Schritt 10: Stellen Sie das bereit API

Damit ein Client das aufrufen kannAPI, müssen Sie eine Bereitstellung und eine zugehörige Phase erstellen. Eine Phase stellt eine Momentaufnahme Ihres Systems darAPI, einschließlich seiner Methoden und Integrationen.

So stellen Sie die API bereit
  1. Öffnen Sie die APIsSeite der APIGateway-Konsole und wählen Sie die DynamoDBOperationsAPI.

  2. Wählen Sie auf der Seite Ressourcen die API Option Deploy ausAPI.

  3. Wählen Sie für Stage (Stufe) *New stage* (*Neue Stufe*) und geben Sie dann als Stage name (Phasenname) test ein.

  4. Wählen Sie Bereitstellen.

  5. Kopieren Sie im Bereich mit den Stage-Details den Befehl Invoke URL. Sie werden dies im nächsten Schritt verwenden, um Ihre Funktion mithilfe einer HTTP Anfrage aufzurufen.

Verwenden Sie curl, um Ihre Funktion mithilfe von Anfragen aufzurufen HTTP

Schritt 11: Rufen Sie die Funktion mit einer Anfrage auf HTTP

Sie können jetzt Ihre Lambda-Funktion aufrufen, indem Sie eine HTTP Anfrage an Ihre senden. API In diesem Schritt erstellen Sie ein neues Element in Ihrer DynamoDB-Tabelle und führen dann Lese-, Aktualisierungs- und Löschvorgänge für dieses Element durch.

So erstellen Sie mit curl ein Element in Ihrer DynamoDB-Tabelle
  1. Führen Sie den folgenden curl Befehl mit dem Invoke aus, den URL Sie im vorherigen Schritt kopiert haben. Wenn Sie curl mit der Option -d (data) verwenden, wird automatisch die HTTP POST Methode verwendet.

    curl https://l8togsqxd8.execute-api.us-east-2.amazonaws.com/test/DynamoDBManager \ -d '{"operation": "create", "payload": {"Item": {"id": "5678EFGH", "number": 15}}}'

    Wenn der Vorgang erfolgreich war, sollte eine Antwort mit dem HTTP Statuscode 200 zurückgegeben werden.

  2. Sie können auch die DynamoDB-Konsole verwenden, um zu überprüfen, ob das neue Element in Ihrer Tabelle enthalten ist, indem Sie wie folgt vorgehen:

    1. Öffnen Sie die Seite Tabellen in der DynamoDB-Konsole und wählen Sie die lambda-apigateway-Tabelle aus.

    2. Wählen Sie Explore Table Items (Tabellenelemente erkudnen) aus. Im Bereich Items returned (Zurückgegebene Elemente) sollte ein Element mit der id (ID) 5678EFGH und der number (Nummer) 15 angezeigt werden.

Um das Element in Ihrer DynamoDB-Tabelle mit curl zu lesen
  • Führen Sie den folgenden curl Befehl aus, um den Wert des gerade erstellten Elements zu lesen. Verwenden Sie Ihren eigenen Aufruf. URL

    curl https://avos4dr2rk.execute-api.us-east-2.amazonaws.com/test/DynamoDBManager -d \ '{"operation": "read", "payload": {"Key": {"id": "5678EFGH"}}}'

    Je nachdem, ob Sie den Funktionscode Node.js oder Python ausgewählt haben, sollten Sie eine Ausgabe wie die folgende sehen:

    Node.js
    {"$metadata":{"httpStatusCode":200,"requestId":"7BP3G5Q0C0O1E50FBQI9NS099JVV4KQNSO5AEMVJF66Q9ASUAAJG", "attempts":1,"totalRetryDelay":0},"Item":{"id":"5678EFGH","number":15}}
    Python
    {"Item":{"id":"5678EFGH","number":15},"ResponseMetadata":{"RequestId":"QNDJICE52E86B82VETR6RKBE5BVV4KQNSO5AEMVJF66Q9ASUAAJG", "HTTPStatusCode":200,"HTTPHeaders":{"server":"Server","date":"Wed, 31 Jul 2024 00:37:01 GMT","content-type":"application/x-amz-json-1.0", "content-length":"52","connection":"keep-alive","x-amzn-requestid":"QNDJICE52E86B82VETR6RKBE5BVV4KQNSO5AEMVJF66Q9ASUAAJG","x-amz-crc32":"2589610852"}, "RetryAttempts":0}}
Um das Element in Ihrer DynamoDB-Tabelle mit curl zu aktualisieren
  1. Führen Sie den folgenden curl Befehl aus, um das gerade erstellte Element zu aktualisieren, indem Sie den Wert ändern. number Verwenden Sie Ihren eigenen InvokeURL.

    curl https://avos4dr2rk.execute-api.us-east-2.amazonaws.com/test/DynamoDBManager \ -d '{"operation": "update", "payload": {"Key": {"id": "5678EFGH"}, "UpdateExpression": "SET #num = :new_value", "ExpressionAttributeNames": {"#num": "number"}, "ExpressionAttributeValues": {":new_value": 42}}}'
  2. Führen Sie einen weiteren Lesebefehl aus, um zu bestätigen, dass der Wert von number für das Element aktualisiert wurde:

    curl https://avos4dr2rk.execute-api.us-east-2.amazonaws.com/test/DynamoDBManager \ -d '{"operation": "read", "payload": {"Key": {"id": "5678EFGH"}}}'
Um das Element in Ihrer DynamoDB-Tabelle mit curl zu löschen
  1. Führen Sie den folgenden curl-Befehl aus, um das soeben erstellte Element zu löschen. Verwenden Sie Ihren eigenen Aufruf. URL

    curl https://l8togsqxd8.execute-api.us-east-2.amazonaws.com/test/DynamoDBManager \ -d '{"operation": "delete", "payload": {"Key": {"id": "5678EFGH"}}}'
  2. Bestätigen Sie, dass der Löschvorgang erfolgreich war. Stellen Sie im Bereich Items returned (Zurückgegebene Elemente) der Seite Explore items (Elemente erkunden) der DynamoDB-Konsole sicher, dass das Element mit der id (ID) 5678EFGH nicht mehr in der Tabelle enthalten ist.

Bereinigen Ihrer Ressourcen (optional)

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, vermeiden Sie unnötige Kosten für Ihre AWS-Konto.

So löschen Sie die Lambda-Funktion:
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie die Funktion aus, die Sie erstellt haben.

  3. Wählen Sie Aktionen, Löschen aus.

  4. Geben Sie delete in das Texteingabefeld ein und wählen Sie Delete (Löschen) aus.

So löschen Sie die Ausführungsrolle
  1. Öffnen Sie die Rollenseite der IAM Konsole.

  2. Wählen Sie die von Ihnen erstellte Ausführungsrolle aus.

  3. Wählen Sie Löschen.

  4. Geben Sie den Namen der Rolle in das Texteingabefeld ein und wählen Sie Delete (Löschen) aus.

Um das zu löschen API
  1. Öffnen Sie die APIsSeite der API Gateway-Konsole.

  2. Wählen Sie die, die API Sie erstellt haben.

  3. Wählen Sie Aktionen, Löschen aus.

  4. Wählen Sie Delete (Löschen) aus.

So löschen Sie die DynamoDB-Tabelle
  1. Öffnen Sie die Seite Tables (Tabellen) in der DynamoDB-Konsole.

  2. Wählen Sie die von Ihnen erstellte Tabelle aus.

  3. Wählen Sie Löschen.

  4. Geben Sie delete in das Textfeld ein.

  5. Wählen Sie Delete Table (Tabelle löschen).