Tutorial: Verwenden von Lambda mit API Gateway - 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: Verwenden von Lambda mit API Gateway

In diesem Tutorial erstellen Sie eine REST-API, über die Sie eine Lambda-Funktion mithilfe einer HTTP-Anfrage aufrufen. Ihre Lambda-Funktion führt CRUD-Operationen (Erstellen, Lesen, Aktualisieren und Löschen) für eine DynamoDB-Tabelle durch. Diese Funktion wird hier zu Demonstrationszwecken bereitgestellt, aber Sie werden lernen, eine API-Gateway-REST-API zu konfigurieren, die 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 dabei helfen, große Mengen an Aufrufen an Ihre Funktion zu verwalten, indem der Datenverkehr gedrosselt und API-Aufrufe automatisch validiert und autorisiert werden. API-Gateway bietet auch flexible Sicherheitskontrollen mithilfe von 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 einer REST-API in API 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. Bereitstellen Ihrer API und Testen der vollständigen Einrichtung mithilfe von curl in einem Terminal.

Durch Abschluss dieser Phasen lernen Sie, wie Sie mit API Gateway einen HTTP-Endpunkt erstellen, der eine Lambda-Funktion in jeder Größenordnung sicher aufrufen kann. Sie erfahren auch, wie Sie Ihre API bereitstellen und wie Sie sie in der Konsole und durch Senden einer HTTP-Anfrage über ein Terminal testen.

Voraussetzungen

Wenn Sie kein AWS-Konto haben, führen Sie die folgenden Schritte zum Erstellen durch.

Anmeldung für ein AWS-Konto
  1. Öffnen Sie https://portal.aws.amazon.com/billing/signup.

  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 ein AWS-Konto anmelden, wird ein Root-Benutzer des AWS-Kontos 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 eine Bestätigungs-E-Mail, sobald die Anmeldung abgeschlossen ist. Sie können jederzeit Ihre aktuelle Kontoaktivität anzeigen und Ihr Konto verwalten. Rufen Sie dazu https://aws.amazon.com/ auf und klicken Sie auf Mein Konto.

Nachdem Sie sich für ein AWS-Kontoangemeldet haben, sichern Sie Ihr Root-Benutzer des AWS-Kontos, aktivieren Sie AWS IAM Identity Centerund erstellen Sie einen administrativen Benutzer, damit Sie nicht den Root-Benutzer für alltägliche Aufgaben verwenden.

Schützen Ihres Root-Benutzer des AWS-Kontos
  1. Melden Sie sich bei der AWS Management Console als Kontobesitzer 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-AnmeldungBenutzerhandbuch zu .

  2. Aktivieren Sie die Multi-Faktor-Authentifizierung (MFA) für den Root-Benutzer.

    Anweisungen dazu finden Sie unter Aktivieren eines virtuellen MFA-Geräts für den Root-Benutzer Ihres AWS-Konto (Konsole) im IAM-Benutzerhandbuch.

Erstellen eines Administratorbenutzers
  1. Aktivieren von IAM Identity Center.

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

  2. Im IAM Identity Center gewähren Sie einem administrativen Benutzer administrativen Zugriff.

    Ein Tutorial zur Verwendung von IAM-Identity-Center-Verzeichnis als Identitätsquelle finden Sie unter Benutzerzugriff mit dem standardmäßigen IAM-Identity-Center-Verzeichnis konfigurieren im AWS IAM Identity Center-Benutzerhandbuch.

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 unter Anmelden beim AWS-Zugangsportal im AWS-Anmeldung Benutzerhandbuch zu.

Wenn Sie die AWS Command Line Interface noch nicht installiert haben, folgen Sie den Schritten unter Installieren oder Aktualisieren der neuesten Version von AWS CLI, um diese 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 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 Berechtigung zum Zugriff auf die erforderlichen AWS-Ressourcen zu erteilen. Für dieses Tutorial erlaubt die Richtlinie Lambda, CRUD-Operationen für eine DynamoDB-Tabelle auszuführen und in Amazon CloudWatch Logs zu schreiben.

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

  2. Wählen Sie Richtlinie erstellen aus.

  3. Wählen Sie die Registerkarte JSON aus und kopieren Sie dann die folgende benutzerdefinierte JSON-Richtlinie in den JSON-Editor.

    { "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 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 Berechtigung zum Zugriff auf AWS-Services und -Ressourcen gewährt. 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 Seite Roles (Rollen) in der IAM-Konsole.

  2. Wählen Sie Rolle erstellen aus.

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

  4. Wählen Sie Weiter aus.

  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 Roles (Rollen) der IAM-Konsole den Namen Ihrer Rolle (lambda-apigateway-role) und kopieren Sie den Role ARN (Rollen-ARN), der auf der Seite Summary (Zusammenfassung) angezeigt wird.

Erstellen der Funktion


        Schritt 3: Erstellen der Funktion

Das folgende Codebeispiel empfängt eine Ereigniseingabe von API-Gateway, die eine Operation angibt, die für die zu erstellende DynamoDB-Tabelle und einige Nutzdaten ausgeführt werden soll. 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
console.log('Loading function'); import { DynamoDBDocumentClient, PutCommand, GetCommand, UpdateCommand, DeleteCommand} from "@aws-sdk/lib-dynamodb"; import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; const ddbClient = new DynamoDBClient({ region: "us-west-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; switch (operation) { case 'create': await ddbDocClient.send(new PutCommand(event.payload)); break; case 'read': var table_item = await ddbDocClient.send(new GetCommand(event.payload)); console.log(table_item); break; case 'update': await ddbDocClient.send(new UpdateCommand(event.payload)); break; case 'delete': await ddbDocClient.send(new DeleteCommand(event.payload)); break; default: return ('Unknown 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 Verwenden von AWS Lambda-Umgebungsvariablen.

So erstellen Sie die Funktion
  1. Speichern Sie das Codebeispiel als 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 eine Lambda-Funktion mit dem create-function AWS CLI-Befehl. Geben Sie für den role-Parameter den zuvor kopierten Amazon-Ressourcennamen (ARN) der Ausführungsrolle ein.

    aws lambda create-function --function-name LambdaFunctionOverHttps \ --zip-file fileb://function.zip --handler index.handler --runtime nodejs18.x \ --role arn:aws:iam::123456789012:role/service-role/lambda-apigateway-role
Python 3
Beispiel LambdaFunctionOverHttps.py
import boto3 import json # define the DynamoDB table that Lambda will connect to tableName = "lambda-apigateway" # create the DynamoDB resource dynamo = boto3.resource('dynamodb').Table(tableName) print('Loading function') def 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 ''' # define the functions used to perform the CRUD operations def ddb_create(x): dynamo.put_item(**x) def ddb_read(x): dynamo.get_item(**x) def ddb_update(x): dynamo.update_item(**x) def ddb_delete(x): dynamo.delete_item(**x) def echo(x): return x operation = event['operation'] operations = { 'create': ddb_create, 'read': ddb_read, 'update': ddb_update, 'delete': ddb_delete, 'echo': echo, } if operation in operations: return operations[operation](event.get('payload')) else: raise ValueError('Unrecognized operation "{}"'.format(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 Verwenden von AWS Lambda-Umgebungsvariablen.

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 eine Lambda-Funktion mit dem create-function AWS CLI-Befehl. Geben Sie für den role-Parameter den zuvor kopierten Amazon-Ressourcennamen (ARN) der Ausführungsrolle ein.

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

Aufrufen der Funktion mit der AWS CLI


        Schritt 4 Aufrufen der Funktion mit der AWS CLI

Bestätigen Sie vor der Integration Ihrer Funktion mit API-Gateway, dass Sie die Funktion erfolgreich bereitgestellt haben. Erstellen Sie ein Testereignis, das die Parameter enthält, die Ihre API-Gateway-API an Lambda sendet, und verwenden Sie zum Ausführen Ihrer Funktion den AWS CLI invoke-Befehl..

So rufen Sie die Lambda-Funktion mit der AWS CLI auf
  1. Speichern Sie die folgende JSON als Datei mit dem Namen input.txt.

    { "operation": "echo", "payload": { "somekey1": "somevalue1", "somekey2": "somevalue2" } }
  2. Führen Sie den folgenden invoke-AWS CLI-Befehl 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. Bestätigen Sie, dass Ihre Funktion die echo-Operation ausgeführt hat, die 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 eine REST-API mit API Gateway


        Schritt 5 Erstellen der API

In diesem Schritt erstellen Sie die API-Gateway-REST-API, die Sie zum Aufrufen Ihrer Lambda-Funktion verwenden.

So erstellen Sie die API
  1. Öffnen Sie die API Gateway-Konsole.

  2. Wählen Sie Create API (API erstellen) aus.

  3. Wählen Sie im Feld REST-API die Option Entwickeln aus.

  4. Lassen Sie unter API details (API-Details) die Option New API (Neue API) ausgewählt und geben Sie für API Name (API-Name) DynamoDBOperations ein.

  5. Wählen Sie Create API (API erstellen) aus.

Erstellen einer Ressource für Ihre REST-API


        Schritt 6 Erstellen der API-Ressource

Um Ihrer API eine HTTP-Methode hinzuzufügen, müssen Sie zunächst eine Ressource erstellen, mit 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 API Gateway-Konsole auf der Seite Resources (Ressourcen) für Ihre API die Option Create Resource (Ressource erstellen) 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 einer HTTP-POST-Methode


        Schritt 7 Erstellen der 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 realen Anwendung besteht die bewährte Methode darin, 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 sich, dass die /DynamoDBManager-Ressource auf der Seite Resources (Ressourcen) für Ihre API markiert ist. Wählen Sie dann im Bereich Methods (Methoden) die Option Create Method (Methode erstellen) aus.

  2. Wählen Sie in Method type (Methodentyp) 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 function (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 CRUD-Operationen ausführt.

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 der Integration von API-Gateway, Lambda und DynamoDB


        Schritt 9 Testen der Integration von API-Gateway, Lambda und DynamoDB

Sie können nun die Integration Ihrer APIä-Gateway-API-Methode mit Ihrer Lambda-Funktion und Ihrer DynamoDB-Tabelle testen. Mit der API Gateway-Konsole senden Sie Anfragen mithilfe der Testfunktion der Konsole 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 API-Gateway-Konsole Ihre API aus (DynamoDBOperations).

  2. Wählen Sie die POST-Methode 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 für Request body (Anforderungstext) den folgenden JSON-Code ein:

    { "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 API-Gateway-Konsole zum Bereich 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 für Request body (Anforderungstext) den folgenden JSON-Code ein:

    { "operation": "update", "payload": { "Key": { "id": "1234ABCD" }, "AttributeUpdates": { "number": { "Value": 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.

Bereitstellen der API


        Schritt 10 Bereitstellen der API

Damit ein Client die API aufrufen kann, müssen Sie eine Bereitstellung und eine zugehörige Stufe erstellen. Eine Phase stellt eine Momentaufnahme Ihrer API dar, einschließlich ihrer Methoden und Integrationen.

So stellen Sie die API bereit
  1. Öffnen Sie die APIs-Seite der API-Gateway-Konsole und wählen Sie die DynamoDBOperations-API aus.

  2. Wählen Sie auf der Seite Resources (Ressourcen) für Ihre API die Option Deploy API (API bereitstellen) aus.

  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 Stage details (Stufendetails) die Invoke URL (Aufruf-URL). Sie werden diese im nächsten Schritt verwenden, um Ihre Funktion mithilfe einer HTTP-Anfrage aufzurufen.

Verwenden von curl zum Aufrufen Ihrer Funktion mithilfe von HTTP-Anfragen


        Schritt 11 Aufrufen der Funktion mit einer HTTP-Anfrage

Sie können Ihre Lambda-Funktion jetzt aufrufen, indem Sie eine HTTP-Anfrage an Ihre API senden. In diesem Schritt erstellen Sie ein neues Element in Ihrer DynamoDB-Tabelle und löschen es anschließend.

So rufen Sie die Lambda-Funktion mit curl auf
  1. Führen Sie den folgenden curl-Befehl mit der Aufruf-URL aus, die Sie im vorherigen Schritt kopiert haben. Wenn Sie curl mit der -d (Daten)-Option verwenden, wird automatisch die HTTP-POST-Methode verwendet.

    curl https://l8togsqxd8.execute-api.us-west-2.amazonaws.com/test/DynamoDBManager \ -d '{"operation": "create", "payload": {"Item": {"id": "5678EFGH", "number": 15}}}'
  2. Gehen Sie wie folgt vor, um zu überprüfen, ob der Erstellungsvorgang erfolgreich war:

    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.

  3. Führen Sie den folgenden curl-Befehl aus, um das soeben erstellte Element zu löschen. Verwenden Sie Ihre eigene Aufruf-URL.

    curl https://l8togsqxd8.execute-api.us-west-2.amazonaws.com/test/DynamoDBManager \ -d '{"operation": "delete", "payload": {"Key": {"id": "5678EFGH"}}}'
  4. 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, können Sie verhindern, dass unnötige Gebühren in Ihrem AWS-Konto anfallen.

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 Seite Roles in der IAM-Konsole.

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

  3. Wählen Sie Löschen aus.

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

So löschen Sie die API
  1. Öffnen Sie die API-Seite der API-Gateway-Konsole.

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

  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 aus.

  4. Geben Sie delete in das Textfeld ein.

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