Tutorial: Erstellen Sie eine REST API Nicht-Proxy-Integration mit einer Lambda-Integration - APIAmazon-Gateway

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: Erstellen Sie eine REST API Nicht-Proxy-Integration mit einer Lambda-Integration

In dieser exemplarischen Vorgehensweise verwenden wir die API Gateway-Konsole, um eine zu erstellenAPI, die es einem Client ermöglicht, Lambda-Funktionen über die Lambda-Non-Proxy-Integration (auch als benutzerdefinierte Integration bezeichnet) aufzurufen. Weitere Informationen zu AWS Lambda und Lambda-Funktionen finden Sie im AWS Lambda -Entwicklerhandbuch.

Um das Lernen zu erleichtern, haben wir uns für eine einfache Lambda-Funktion mit minimalem API Einrichtungsaufwand entschieden, um Sie durch die Schritte zur Erstellung eines API Gateways API mit der benutzerdefinierten Lambda-Integration zu führen. Bei Bedarf werden wir Teile der Logik beschreiben. Ein ausführlicheres Beispiel für die benutzerdefinierte Lambda-Integration finden Sie unter Tutorial: Erstellen Sie einen Rechner REST API mit zwei AWS Serviceintegrationen und einer Lambda-Non-Proxy-Integration.

Bevor Sie das erstellenAPI, richten Sie das Lambda-Backend ein, indem Sie eine Lambda-Funktion in AWS Lambda, wie im Folgenden beschrieben, erstellen.

Lambda-Funktion für die Nicht-Proxy-Integration von Lambda erstellen

Anmerkung

Das Erstellen von Lambda-Funktionen kann zu Gebühren für Ihr AWS Konto führen.

In diesem Schritt erstellen Sie eine "Hello World"-ähnliche Lambda-Funktion für die benutzerdefinierte Integration von Lambda. In dieser schrittweisen Anleitung heißt die Funktion GetStartedLambdaIntegration.

Die Implementierung dieser GetStartedLambdaIntegration-Lambda-Funktion sieht wie folgt aus:

Node.js
'use strict'; var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; var times = ['morning', 'afternoon', 'evening', 'night', 'day']; console.log('Loading function'); export const handler = function(event, context, callback) { // Parse the input for the name, city, time and day property values let name = event.name === undefined ? 'you' : event.name; let city = event.city === undefined ? 'World' : event.city; let time = times.indexOf(event.time)<0 ? 'day' : event.time; let day = days.indexOf(event.day)<0 ? null : event.day; // Generate a greeting let greeting = 'Good ' + time + ', ' + name + ' of ' + city + '. '; if (day) greeting += 'Happy ' + day + '!'; // Log the greeting to CloudWatch console.log('Hello: ', greeting); // Return a greeting to the caller callback(null, { "greeting": greeting }); };
Python
import json days = { 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'} times = {'morning', 'afternoon', 'evening', 'night', 'day'} def lambda_handler(event, context): print(event) # parse the input for the name, city, time, and day property values try: if event['name']: name = event['name'] except KeyError: name = 'you' try: if event['city']: city = event['city'] except KeyError: city = 'World' try: if event['time'] in times: time = event['time'] else: time = 'day' except KeyError: time = 'day' try: if event['day'] in days: day = event['day'] else: day = '' except KeyError: day = '' # Generate a greeting greeting = 'Good ' + time + ', ' + name + ' of ' + \ city + '.' + ['', ' Happy ' + day + '!'][day != ''] # Log the greeting to CloudWatch print(greeting) # Return a greeting to the caller return {"greeting": greeting}

Für die benutzerdefinierte Lambda-Integration übergibt API Gateway die Eingabe vom Client an die Lambda-Funktion als Hauptteil der Integrationsanfrage. Das event-Objekt des Lambda-Funktionshandlers ist die Eingabe.

Unsere Lambda-Funktion ist einfach. Sie analysiert das event-Objekt mit der Eingabe auf die Eigenschaften name, city, time und day. Anschließend gibt es eine Begrüßung als JSON Objekt von an den {"message":greeting} Anrufer zurück. Die Nachricht nutzt das "Good [morning|afternoon|day], [name|you] in [city|World]. Happy day!"-Muster. Es wird davon ausgegangen, dass es sich bei der Eingabe für die Lambda-Funktion um das folgende JSON Objekt handelt:

{ "city": "...", "time": "...", "day": "...", "name" : "..." }

Weitere Informationen finden Sie im AWS Lambda -Entwicklerhandbuch.

Darüber hinaus protokolliert die Funktion ihre Ausführung bei Amazon, CloudWatch indem sie aufruftconsole.log(...). Dies ist hilfreich, wenn Sie die Funktionsaufrufe zum Debuggen nachverfolgen möchten. Damit die GetStartedLambdaIntegration Funktion den Aufruf protokollieren kann, legen Sie eine IAM Rolle mit entsprechenden Richtlinien für die Lambda-Funktion fest, um die CloudWatch Streams zu erstellen und Protokolleinträge zu den Streams hinzuzufügen. Die Lambda-Konsole führt Sie durch die Erstellung der erforderlichen IAM Rollen und Richtlinien.

Wenn Sie die einrichten, API ohne die API Gateway-Konsole zu verwenden, z. B. wenn Sie eine Datei API aus einer geöffneten API Datei importieren, müssen Sie bei Bedarf explizit eine Aufrufrolle und -richtlinie für API Gateway erstellen und einrichten, um die Lambda-Funktionen aufzurufen. Weitere Informationen zum Einrichten von Lambda-Aufruf- und Ausführungsrollen für ein API Gateway API finden Sie unter. Steuern Sie den Zugriff auf eine REST API mit IAM Berechtigungen

Im Vergleich zur GetStartedLambdaProxyIntegration Lambda-Funktion für die Lambda-Proxyintegration nimmt die Lambda-Funktion für die benutzerdefinierte GetStartedLambdaIntegration Lambda-Integration nur Eingaben aus dem Anfragetext der API API Gateway-Integration entgegen. Die Funktion kann eine Ausgabe eines beliebigen JSON Objekts, einer Zeichenfolge, einer Zahl, eines booleschen Werts oder sogar eines binären Blobs zurückgeben. Die Lambda-Funktion für die Lambda-Proxyintegration kann dagegen die Eingabe von beliebigen Anforderungsdaten übernehmen, muss jedoch eine Ausgabe eines bestimmten JSON Objekts zurückgeben. Die GetStartedLambdaIntegration Funktion für die benutzerdefinierte Lambda-Integration kann die API Anforderungsparameter als Eingabe haben, vorausgesetzt, dass API Gateway die erforderlichen API Anforderungsparameter dem Hauptteil der Integrationsanfrage zuordnet, bevor die Client-Anfrage an das Backend weitergeleitet wird. Zu diesem Zweck muss der API Entwickler eine Zuordnungsvorlage erstellen und diese bei der Erstellung der API Methode entsprechend konfigurieren. API

Erstellen Sie jetzt die GetStartedLambdaIntegration Lambda-Funktion.

So erstellen Sie die GetStartedLambdaIntegration Lambda-Funktion für die benutzerdefinierte Integration von Lambda
  1. Öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/.

  2. Führen Sie eine der folgenden Aktionen aus:

    • Wenn die Willkommensseite angezeigt wird, wählen Sie Get Started Now (Jetzt beginnen) und dann Create function (Funktion erstellen) aus.

    • Wenn die Listenseite Lambda > Functions (Lambda > Funktionen) angezeigt wird, wählen Sie Create function (Funktion erstellen).

  3. Wählen Sie Author from scratch aus.

  4. Verfahren Sie im Bereich Author from scratch wie folgt:

    1. Geben Sie für Name GetStartedLambdaIntegration als Namen der Lambda-Funktion ein.

    2. Wählen Sie für Laufzeit die neueste unterstützte Node.js- oder Python-Laufzeit aus.

    3. Behalten Sie für Architektur die Standardeinstellung bei.

    4. Erweitern Sie unter Berechtigungen die Option Standardausführungsrolle ändern. Wählen Sie in der Dropdown-Liste Ausführungsrolle die Option Neue Rolle aus AWS -Richtlinienvorlagen erstellen aus.

    5. Geben Sie unter Role name (Rollenname) einen Namen für die Rolle ein (z. B. GetStartedLambdaIntegrationRole).

    6. Wählen Sie für Policy templates (Richtlinienvorlagen) die Option Simple microservice permissions (Einfache Microservice-Berechtigungen).

    7. Wählen Sie Create function (Funktion erstellen).

  5. Legen Sie im Bereich Configuration function (Konfiguration) unter Function code (Funktionscode) die Folgendes fest:

    1. Kopieren Sie den Code in der Lambda-Funktion am Anfang dieses Abschnitts und fügen Sie ihn in den Inline-Codeeditor ein.

    2. Akzeptieren Sie die Standardwerte für alle anderen Felder in diesem Abschnitt.

    3. Wählen Sie Deploy (Bereitstellen) aus.

  6. Um die neu erstellte Funktion zu testen, wählen Sie die Registerkarte Test aus.

    1. Geben Sie für Event name (Ereignisname) HelloWorldTest ein.

    2. Ersetzen Sie für Event JSON den Standardcode durch den folgenden Code.

      { "name": "Jonny", "city": "Seattle", "time": "morning", "day": "Wednesday" }
    3. Wählen Sie Test, um die Funktion aufzurufen. Der Abschnitt Execution result: succeeded wird angezeigt. Erweitern Sie Details und diese Ausgabe wird angezeigt.

      { "greeting": "Good morning, Jonny of Seattle. Happy Wednesday!" }

      Die Ausgabe wird auch in CloudWatch Logs geschrieben.

Als Nebenübung können Sie die IAM Konsole verwenden, um die IAM Rolle (GetStartedLambdaIntegrationRole) anzuzeigen, die im Rahmen der Lambda-Funktionserstellung erstellt wurde. Mit dieser IAM Rolle sind zwei Inline-Richtlinien verknüpft. Eine legt die grundlegenden Berechtigungen für die Ausführung von Lambda fest. Es ermöglicht das CloudWatch CreateLogGroup Aufrufen aller CloudWatch Ressourcen Ihres Kontos in der Region, in der die Lambda-Funktion erstellt wurde. Diese Richtlinie ermöglicht auch das Erstellen der CloudWatch Streams und das Protokollieren von Ereignissen für die GetStartedLambdaIntegration Lambda-Funktion.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "arn:aws:logs:region:account-id:*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:/aws/lambda/GetStartedLambdaIntegration:*" ] } ] }

Das andere Richtliniendokument bezieht sich auf das Aufrufen eines anderen AWS Dienstes, der in diesem Beispiel nicht verwendet wird. Sie können sie überspringen.

Der IAM Rolle ist eine vertrauenswürdige Entität zugeordnet, nämlichlambda.amazonaws.com. Hier ist die Vertrauensstellung:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Die Kombination aus dieser Vertrauensbeziehung und der Inline-Richtlinie ermöglicht es der Lambda-Funktion, eine console.log() Funktion aufzurufen, um Ereignisse in Logs zu protokollieren. CloudWatch

Erstellen Sie eine API Nicht-Proxy-Integration mit Lambda

Nachdem die Lambda-Funktion (GetStartedLambdaIntegration) erstellt und getestet wurde, sind Sie bereit, die Funktion über ein API Gateway API verfügbar zu machen. Zur Veranschaulichung stellen wir die Lambda-Funktion mit einer generischen HTTP Methode zur Verfügung. Wir verwenden den Anforderungstext, eine URL Pfadvariable, eine Abfragezeichenfolge und einen Header, um die erforderlichen Eingabedaten vom Client zu erhalten. Wir schalten den API Gateway-Anforderungsvalidator für ein, API um sicherzustellen, dass alle erforderlichen Daten korrekt definiert und spezifiziert sind. Wir konfigurieren eine Mapping-Vorlage für API Gateway, um die vom Kunden bereitgestellten Anforderungsdaten in das gültige Format umzuwandeln, wie es von der Backend-Lambda-Funktion verlangt wird.

Um eine Nicht-Proxy-Integration API mit einer Lambda-Integration zu erstellen
  1. Melden Sie sich bei der API Gateway-Konsole unter /apigateway anhttps://console.aws.amazon.com.

  2. Wenn Sie API Gateway zum ersten Mal verwenden, wird eine Seite angezeigt, auf der Sie mit den Funktionen des Dienstes vertraut gemacht werden. Wählen Sie RESTAPIunter Build aus. Wenn das API Popup-Fenster „Beispiel erstellen“ angezeigt wird, wählen Sie „OK“.

    Wenn Sie API Gateway nicht zum ersten Mal verwenden, wählen Sie Create API. Wählen Sie RESTAPIunter Build aus.

  3. Geben Sie als APINamen einLambdaNonProxyAPI.

  4. (Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.

  5. Lassen Sie den APIEndpunkttyp auf Regional eingestellt.

  6. Wählen Sie Erstellen API.

Nachdem Sie Ihre erstellt habenAPI, erstellen Sie eine/{city} -Ressource. Dies ist ein Beispiel für eine Ressource mit einer Pfadvariablen, die Eingaben vom Client annimmt. In einem späteren Schritt werden Sie diese Pfadvariable der Lambda-Funktionseingabe mittels einer Zuordnungsvorlage zuweisen.

Erstellen Sie eine Ressource
  1. Wählen Sie Create Resource (Ressource erstellen) aus.

  2. Die Proxy-Ressource bleibt ausgeschaltet.

  3. Ressourcenpfad wird als / beibehalten.

  4. Geben Sie für Resource name (Ressourcenname) {city} ein.

  5. Halte CORS(Cross Origin Resource Sharing) ausgeschaltet.

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

Nachdem Sie eine /{city}-Ressource erstellt haben, können Sie nun eine ANY-Methode erstellen. Das ANY HTTP Verb ist ein Platzhalter für eine gültige HTTP Methode, die ein Client zur Laufzeit einreicht. Dieses Beispiel zeigt, dass die ANY-Methode sowohl für die benutzerdefinierte Integration von Lambda als auch für die Integration von Lambda-Proxys verwendet werden kann.

Erstellen einer ANY-Methode
  1. Wählen Sie die /{city}-Ressource aus und klicken Sie dann auf Methode erstellen.

  2. Wählen Sie als Methodentyp die Option ANY aus.

  3. Wählen Sie für den Integration type (Integrationstyp) die Option Lambda function (Lambda-Funktion) aus.

  4. Lassen Sie Lambda proxy integration (Lambda-Proxyintegration) deaktiviert.

  5. Wählen Sie für Lambda-Funktion den Ort aus, AWS-Region an dem Sie Ihre Lambda-Funktion erstellt haben, und geben Sie dann den Funktionsnamen ein.

  6. Wählen Sie Einstellungen für Methodenanfragen aus.

    Jetzt aktivieren Sie einen Anforderungsvalidator für eine URL Pfadvariable, einen Abfragezeichenfolgenparameter und einen Header, um sicherzustellen, dass alle erforderlichen Daten definiert sind. Für dieses Beispiel erstellen Sie einen time-Abfragezeichenfolgenparameter und einen day-Header.

  7. Wählen Sie für Anforderungs-Validierer die Option Abfragezeichenfolgeparameter und -Header validieren aus.

  8. Wählen Sie die Parameter für die URL Abfragezeichenfolge und gehen Sie wie folgt vor:

    1. Wählen Sie Abfragezeichenfolge hinzufügen aus.

    2. Geben Sie unter Name time ein.

    3. Aktivieren Sie die Option Erforderlich.

    4. Caching bleibt ausgeschaltet.

  9. Wählen Sie HTTPAnforderungsheader aus und gehen Sie wie folgt vor:

    1. Wählen Sie Add header.

    2. Geben Sie unter Name day ein.

    3. Aktivieren Sie die Option Erforderlich.

    4. Caching bleibt ausgeschaltet.

  10. Wählen Sie Methode erstellen aus.

Nachdem Sie einen Anforderungsvalidator aktiviert haben, konfigurieren Sie die Integrationsanforderung für die ANY Methode, indem Sie eine Body-Mapping-Vorlage hinzufügen, um die eingehende Anfrage in eine JSON Nutzlast umzuwandeln, wie es die Backend-Lambda-Funktion erfordert.

Konfigurieren der Integrationsanforderung
  1. Wählen Sie auf der Registerkarte Integrationsanfrage unter den Einstellungen für die Integrationsanfrage die Option Bearbeiten aus.

  2. Wählen Sie für Anforderungstext-Pass-Through die Option Wenn keine Vorlagen definiert sind (empfohlen) aus.

  3. Wählen Sie Zuordnungsvorlagen aus.

  4. Wählen Sie Add mapping template.

  5. Geben Sie für Content type (Inhaltstyp) application/json ein.

  6. Geben Sie für Vorlagentext den folgenden Code ein:

    #set($inputRoot = $input.path('$')) { "city": "$input.params('city')", "time": "$input.params('time')", "day": "$input.params('day')", "name": "$inputRoot.callerName" }
  7. Wählen Sie Save (Speichern) aus.

Testen Sie den Aufruf der Methode API

Die API Gateway-Konsole bietet eine Testfunktion, mit der Sie den Aufruf der testen können, API bevor sie bereitgestellt wird. Sie verwenden die Testfunktion der Konsole, um das zu testen, API indem Sie die folgende Anfrage senden:

POST /Seattle?time=morning day:Wednesday { "callerName": "John" }

In dieser Testanforderung legen Sie ANY auf POSTfest, {city} auf Seattle, weisen Wednesday als day-Header-Wert zu und weisen "John" als callerName-Wert zu.

So testen Sie die ANY-Methode
  1. Wählen Sie die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte anzuzeigen.

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

  3. Geben Sie für Pfad unter Stadt den Wert Seattle ein.

  4. Für Abfrage-Zeichenketten geben Sie time=morning ein.

  5. Für Headers geben Sie den Wert day:Wednesday ein.

  6. Geben Sie für Anforderungstext { "callerName": "John" } ein

  7. Wählen Sie Test aus.

Überprüfen Sie, ob die zurückgegebene Antwortnutzlast wie folgt lautet:

{ "greeting": "Good morning, John of Seattle. Happy Wednesday!" }

Sie können sich auch die Protokolle ansehen, um zu untersuchen, wie API Gateway die Anfrage und Antwort verarbeitet.

Execution log for request test-request Thu Aug 31 01:07:25 UTC 2017 : Starting execution for request: test-invoke-request Thu Aug 31 01:07:25 UTC 2017 : HTTP Method: POST, Resource Path: /Seattle Thu Aug 31 01:07:25 UTC 2017 : Method request path: {city=Seattle} Thu Aug 31 01:07:25 UTC 2017 : Method request query string: {time=morning} Thu Aug 31 01:07:25 UTC 2017 : Method request headers: {day=Wednesday} Thu Aug 31 01:07:25 UTC 2017 : Method request body before transformations: { "callerName": "John" } Thu Aug 31 01:07:25 UTC 2017 : Request validation succeeded for content type application/json Thu Aug 31 01:07:25 UTC 2017 : Endpoint request URI: https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:GetStartedLambdaIntegration/invocations Thu Aug 31 01:07:25 UTC 2017 : Endpoint request headers: {x-amzn-lambda-integration-tag=test-request, Authorization=****************************************************************************************************************************************************************************************************************************************************************************************************************************************338c72, X-Amz-Date=20170831T010725Z, x-amzn-apigateway-api-id=beags1mnid, X-Amz-Source-Arn=arn:aws:execute-api:us-west-2:123456789012:beags1mnid/null/POST/{city}, Accept=application/json, User-Agent=AmazonAPIGateway_beags1mnid, X-Amz-Security-Token=FQoDYXdzELL//////////wEaDMHGzEdEOT/VvGhabiK3AzgKrJw+3zLqJZG4PhOq12K6W21+QotY2rrZyOzqhLoiuRg3CAYNQ2eqgL5D54+63ey9bIdtwHGoyBdq8ecWxJK/YUnT2Rau0L9HCG5p7FC05h3IvwlFfvcidQNXeYvsKJTLXI05/yEnY3ttIAnpNYLOezD9Es8rBfyruHfJfOqextKlsC8DymCcqlGkig8qLKcZ0hWJWVwiPJiFgL7laabXs++ZhCa4hdZo4iqlG729DE4gaV1mJVdoAagIUwLMo+y4NxFDu0r7I0/EO5nYcCrppGVVBYiGk7H4T6sXuhTkbNNqVmXtV3ch5bOlh7 [TRUNCATED] Thu Aug 31 01:07:25 UTC 2017 : Endpoint request body after transformations: { "city": "Seattle", "time": "morning", "day": "Wednesday", "name" : "John" } Thu Aug 31 01:07:25 UTC 2017 : Sending request to https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:GetStartedLambdaIntegration/invocations Thu Aug 31 01:07:25 UTC 2017 : Received response. Integration latency: 328 ms Thu Aug 31 01:07:25 UTC 2017 : Endpoint response body before transformations: {"greeting":"Good morning, John of Seattle. Happy Wednesday!"} Thu Aug 31 01:07:25 UTC 2017 : Endpoint response headers: {x-amzn-Remapped-Content-Length=0, x-amzn-RequestId=c0475a28-8de8-11e7-8d3f-4183da788f0f, Connection=keep-alive, Content-Length=62, Date=Thu, 31 Aug 2017 01:07:25 GMT, X-Amzn-Trace-Id=root=1-59a7614d-373151b01b0713127e646635;sampled=0, Content-Type=application/json} Thu Aug 31 01:07:25 UTC 2017 : Method response body after transformations: {"greeting":"Good morning, John of Seattle. Happy Wednesday!"} Thu Aug 31 01:07:25 UTC 2017 : Method response headers: {X-Amzn-Trace-Id=sampled=0;root=1-59a7614d-373151b01b0713127e646635, Content-Type=application/json} Thu Aug 31 01:07:25 UTC 2017 : Successfully completed execution Thu Aug 31 01:07:25 UTC 2017 : Method completed with status: 200

Die Protokolle zeigen die eingehende Anforderung vor der Zuordnung und die Integrationsanforderung nach der Zuordnung. Wenn ein Test fehlschlägt, sind die Protokolle nützlich, um zu prüfen, ob die ursprüngliche Eingabe korrekt ist oder ob die Mapping-Vorlage ordnungsgemäß funktioniert.

Stellen Sie das bereit API

Der Testaufruf ist eine Simulation und hat Einschränkungen. Beispielsweise umgeht es alle Autorisierungsmechanismen, die auf dem eingerichtet wurden. API Um die API Ausführung in Echtzeit zu testen, müssen Sie die API erste Version bereitstellen. Um eine bereitzustellenAPI, erstellen Sie eine Phase, um einen Snapshot des zu diesem API Zeitpunkt zu erstellen. Der Name der Phase definiert auch den Basispfad nach API dem Standard-Hostnamen von. Die Stammressource API von wird nach dem Phasennamen angehängt. Wenn Sie die ändernAPI, müssen Sie sie erneut in einer neuen oder vorhandenen Phase bereitstellen, bevor die Änderungen wirksam werden.

Um das in einer API Phase bereitzustellen
  1. Wählen Sie BereitstellenAPI aus.

  2. Wählen Sie für Stufe die Option Neue Stufe aus.

  3. Geben Sie für Stage name (Stufenname) test ein.

    Anmerkung

    Bei der Eingabe muss es sich um UTF -8-codierten (d. h. nicht lokalisierten) Text handeln.

  4. (Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.

  5. Wählen Sie Bereitstellen.

Wählen Sie unter Stage-Details das Kopiersymbol aus, um Ihren API Aufruf zu kopieren. URL Das allgemeine Muster der S-Basis API URL isthttps://api-id.region.amazonaws.com/stageName. Die Basis URL von API (beags1mnid), die in der us-west-2 Region erstellt und auf der test Bühne bereitgestellt wurde, ist beispielsweisehttps://beags1mnid.execute-api.us-west-2.amazonaws.com/test.

Testen Sie das API in einer Bereitstellungsphase

Es gibt verschiedene Möglichkeiten, wie Sie eine bereitgestellte Version testen könnenAPI. Für GET Anfragen, die nur URL Pfadvariablen oder Abfragezeichenfolgenparameter verwenden, können Sie die API Ressource URL in einem Browser eingeben. Für andere Methoden müssen Sie erweiterte REST API Testdienstprogramme wie POSTMANoder c verwendenURL.

Um das API mit c zu testen URL
  1. Öffnen Sie ein Terminalfenster auf Ihrem lokalen Computer, der mit dem Internet verbunden ist.

  2. So können Sie dies testen POST /Seattle?time=evening:

    Kopieren Sie den folgenden URL c-Befehl und fügen Sie ihn in das Terminalfenster ein.

    curl -v -X POST \ 'https://beags1mnid.execute-api.us-west-2.amazonaws.com/test/Seattle?time=evening' \ -H 'content-type: application/json' \ -H 'day: Thursday' \ -H 'x-amz-docs-region: us-west-2' \ -d '{ "callerName": "John" }'

    Als Ergebnis sollten Sie eine erfolgreiche Antwort mit der folgenden Nutzlast erhalten:

    {"greeting":"Good evening, John of Seattle. Happy Thursday!"}

    Wenn Sie diese Methode POST zu PUT ändern, erhalten Sie dieselbe Antwort.

Bereinigen

Wenn Sie die für diese Anleitung erstellten Lambda-Funktionen nicht mehr benötigen, können Sie diese nun löschen. Sie können auch die zugehörigen IAM Ressourcen löschen.

Warnung

Wenn Sie vorhaben, die anderen exemplarischen Vorgehensweisen in dieser Reihe abzuschließen, löschen Sie weder die Lambda-Ausführungsrolle noch die Lambda-Aufruf-Rolle. Wenn Sie eine Lambda-Funktion löschen, auf die Sie APIs sich verlassen, APIs funktionieren diese nicht mehr. Das Löschen einer Lambda-Funktion kann nicht rückgängig gemacht werden. Wenn Sie die Lambda-Funktion erneut verwenden möchten, müssen Sie die Funktion neu erstellen.

Wenn Sie eine IAM Ressource löschen, auf die sich eine Lambda-Funktion stützt, funktioniert diese Lambda-Funktion nicht mehr, und alle, APIs die auf diese Funktion angewiesen sind, funktionieren nicht mehr. Das Löschen einer IAM Ressource kann nicht rückgängig gemacht werden. Wenn Sie die IAM Ressource erneut verwenden möchten, müssen Sie die Ressource neu erstellen.

So löschen Sie die Lambda-Funktion:
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/.

  2. Wählen Sie GetStartedLambdaIntegrationin der Liste der Funktionen Aktionen und anschließend Funktion löschen aus. Wählen Sie bei Aufforderung erneut Löschen aus.

Löschen Sie die zugehörigen IAM-Ressourcen wie folgt:
  1. Öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie in Details Roles.

  3. Wählen Sie aus der Rollenliste GetStartedLambdaIntegrationRoledie Option Rollenaktionen und anschließend Rolle löschen aus. Folgen Sie den Schritten in der Konsole, um die Rolle zu löschen.