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 einen Rechner REST API mit zwei AWS Serviceintegrationen und einer Lambda-Non-Proxy-Integration
Das Tutorial: Erstellen Sie eine REST API Nicht-Proxy-Integration mit einer Lambda-Integration verwendet ausschließlich Lambda Function
Integration. Lambda Function
Integration ist ein Sonderfall des AWS
Service
Integrationstyps, der einen Großteil der Integrationseinrichtung für Sie übernimmt, z. B. das automatische Hinzufügen der erforderlichen ressourcenbasierten Berechtigungen für den Aufruf der Lambda-Funktion. Hier wird bei zwei der drei Integrationen die AWS Service
-Integration verwendet. Bei diesem Integrationstyp haben Sie mehr Kontrolle, müssen jedoch Aufgaben wie das Erstellen und Spezifizieren einer IAM Rolle mit den entsprechenden Berechtigungen manuell ausführen.
In diesem Tutorial erstellen Sie eine Calc
Lambda-Funktion, die grundlegende arithmetische Operationen implementiert und JSON -formatierte Ein- und Ausgaben akzeptiert und zurückgibt. Anschließend erstellen Sie eine REST API und integrieren sie auf folgende Weise in die Lambda-Funktion:
-
Verwenden einer
GET
-Methode für die/calc
-Ressource, um die Lambda-Funktion aufzurufen, wobei die Eingabe als Abfragezeichenfolge-Parameter übergeben wird. (AWS Service
-Integration) -
Verwenden einer
POST
-Methode für die/calc
-Ressource, um die Lambda-Funktion aufzurufen, wobei die Eingabe in der Methodenanforderungsnutzlast übergeben wird. (AWS Service
-Integration) -
Verwenden einer
GET
-Methode für verschachtelte/calc/{operand1}/{operand2}/{operator}
-Ressourcen, um die Lambda-Funktion aufzurufen, wobei die Eingabe als Pfadparameter übergeben wird. (Lambda Function
-Integration)
Zusätzlich zum Ausprobieren dieses Tutorials möchten Sie vielleicht auch die APIOpen-Definitionsdatei für studieren Calc
API, die Sie in API Gateway importieren können, indem Sie den Anweisungen unter folgen. Entwickeln REST APIs mit Open API in API Gateway
Themen
- Erstellen einer annehmbaren IAM-Rolle
- Erstellen einer Calc-Lambda-Funktion
- Calc Lambda-Funktion testen
- Erstellen Sie eine Calc API
- Integration 1: Erstellen Sie eine GET-Methode mit Abfrageparametern, um die Lambda-Funktion aufzurufen
- Integration 2: Erstellen Sie eine POST Methode mit einer JSON Nutzlast zum Aufrufen der Lambda-Funktion
- Integration 3: Erstellen Sie eine GET-Methode mit Pfadparametern für den Aufruf der Lambda-Funktion
- Öffnen Sie API Definitionen eines Beispiels, das in eine Lambda-Funktion API integriert ist
Erstellen einer annehmbaren IAM-Rolle
Damit Sie Ihre API Calc
Lambda-Funktion aufrufen können, benötigen Sie eine angenommene API IAM Gateway-Rolle, bei der es sich um eine IAM Rolle mit der folgenden vertrauenswürdigen Beziehung handelt:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Die Rolle, die Sie erstellen, benötigt eine InvokeFunctionLambda-Berechtigung. Andernfalls erhält der API Anrufer eine 500 Internal Server Error
Antwort. Um der Rolle diese Berechtigung zu erteilen, fügen Sie ihr die folgende IAM Richtlinie hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "*" } ] }
Gehen Sie hierzu folgendermaßen vor:
Erstellen Sie eine API vermutete Rolle IAM als Gateway
-
Anmelden bei der IAM-Konsole.
-
Wählen Sie Roles.
-
Wählen Sie Create Role aus.
-
Wählen Sie unter Select type of trusted entity (Typ der vertrauenswürdigen Entität auswählen) die Option AWS Service aus.
-
Wählen Sie unter Choose the service that will use this role (Die Rolle auswählen, die diese Rollen verwenden wird) die Option Lambda aus.
-
Wählen Sie Next: Permissions aus.
-
Wählen Sie Create Policy (Richtlinie erstellen) aus.
Ein neues Create Policy Konsolen-Fenster wird geöffnet. Führen Sie in diesem Fenster folgende Schritte aus:
-
Ersetzen Sie auf der JSONRegisterkarte die bestehende Richtlinie durch die folgende Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "*" } ] }
-
Wählen Sie Review policy (Richtlinie prüfen) aus.
-
Gehen Sie unter Review Policy wie folgt vor:
-
Geben Sie unter Name einen Namen wie
lambda_execute
ein. -
Wählen Sie Create Policy (Richtlinie erstellen) aus.
-
-
-
Führen Sie im ursprünglichen Konsolen-Fenster Create Role Folgendes aus:
-
Wählen Sie unter Attach permissions policies (Berechtigungsrichtlinien hinzufügen), wählen die
lambda_execute
Richtlinie aus der Dropdown-Liste aus.Wenn Ihre Richtlinie nicht in der Liste angezeigt wird, wählen Sie die Schaltfläche "Aktualisieren" oben in der Liste aus. (Aktualisieren Sie nicht die Browserseite!)
-
Wählen Sie Next: Tags (Weiter: Tags) aus.
-
Klicken Sie auf Weiter: Prüfen.
-
Geben Sie unter Role name einen Namen wie
lambda_invoke_function_assume_apigw_role
ein. -
Wählen Sie Create role aus.
-
-
Wählen Sie Ihre
lambda_invoke_function_assume_apigw_role
aus der Rollen-Liste aus. -
Wählen Sie die Registerkarte Trust relationships (Vertrauensstellungen).
-
Wählen Sie Edit Trust Relationship (Vertrauensstellungen bearbeiten).
-
Ersetzen Sie die vorhandene Richtlinie durch Folgendes:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com", "apigateway.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
Wählen Sie Update Trust Policy.
-
Notieren Sie sich die Rolle ARN für die Rolle, die Sie gerade erstellt haben. Sie benötigen sie zu einem späteren Zeitpunkt.
Erstellen einer Calc
-Lambda-Funktion
Als Nächstes erstellen Sie eine Lambda-Funktion unter Verwendung der Lambda-Konsole.
-
Wählen Sie in der Lambda-Konsole Create function (Funktion erstellen).
-
Wählen Sie Author from scratch aus.
-
Geben Sie als Name die Zeichenfolge „
Calc
“ ein. -
Wählen Sie für Laufzeit die neueste unterstützte Node.js- oder Python-Laufzeit aus.
Verwenden Sie für alle anderen Optionen die Standardeinstellung.
-
Wählen Sie Funktion erstellen aus.
-
Kopieren Sie die folgende Lambda-Funktion in Ihre bevorzugte Laufzeit und fügen Sie sie in den Code-Editor in der Lambda-Konsole ein.
-
Wählen Sie unter "Ausführungsrolle" Choose an existing role (Wählen Sie eine vorhandene Rolle aus) aus.
-
Geben Sie die Rolle ARN für die
lambda_invoke_function_assume_apigw_role
Rolle ein, die Sie zuvor erstellt haben. -
Wählen Sie Deploy (Bereitstellen) aus.
Diese Funktion erfordert zwei Operanden (a
und b
) und einen Operator (op
) aus dem Eingabeparameter event
. Die Eingabe ist ein JSON Objekt mit dem folgenden Format:
{ "a": "Number" | "String", "b": "Number" | "String", "op": "String" }
Diese Funktion gibt das berechnete Ergebnis (c
) und die Eingabe zurück. Im Falle einer ungültigen Eingabe gibt die Funktion entweder den Wert null (0) oder die Zeichenfolge "Invalid op" als Ergebnis zurück. Die Ausgabe hat das folgende JSON Format:
{ "a": "Number", "b": "Number", "op": "String", "c": "Number" | "String" }
Sie sollten die Funktion in der Lambda-Konsole testen, bevor Sie sie im nächsten Schritt API in die integrieren.
Calc
Lambda-Funktion testen
Hier erfahren Sie, wie Sie Ihre Calc
Funktion in der Lambda-Konsole testen können:
-
Wählen Sie die Registerkarte Test.
-
Geben Sie für den Testereignisnamen ei
calc2plus5
. -
Ersetzen Sie die Testereignisdefinition durch Folgendes:
{ "a": "2", "b": "5", "op": "+" }
-
Wählen Sie Save (Speichern) aus.
-
Wählen Sie Test aus.
-
Erweitern Sie Execution result: succeeded (Ausführungsergebnis: erfolgreich). Sie sollten Folgendes sehen:
{ "a": 2, "b": 5, "op": "+", "c": 7 }
Erstellen Sie eine Calc
API
Das folgende Verfahren zeigt, wie Sie eine API für die Calc
Lambda-Funktion erstellen, die Sie gerade erstellt haben. In den folgenden Abschnitten fügen Sie dieser Ressourcen und Methoden hinzu.
Um eine zu erstellen API
Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan
. -
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.
Geben Sie als APINamen ein
LambdaCalc
.(Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.
Lassen Sie den APIEndpunkttyp auf Regional eingestellt.
Wählen Sie Erstellen API.
Integration 1: Erstellen Sie eine GET
-Methode mit Abfrageparametern, um die Lambda-Funktion aufzurufen
Indem Sie eine GET
Methode erstellen, die Abfragezeichenfolgenparameter an die Lambda-Funktion übergibt, ermöglichen Sie, dass API die von einem Browser aus aufgerufen werden kann. Dieser Ansatz kann nützlich sein, insbesondere für solche, APIs die offenen Zugriff ermöglichen.
Nachdem Sie eine erstellt habenAPI, erstellen Sie eine Ressource. In der Regel werden API Ressourcen entsprechend der Anwendungslogik in einem Ressourcenbaum organisiert. In diesem Schritt erstellen Sie eine /calc-Ressource.
So erstellen Sie eine /calc-Ressource
Wählen Sie Create Resource (Ressource erstellen) aus.
Die Proxy-Ressource bleibt ausgeschaltet.
Ressourcenpfad wird als
/
beibehalten.Geben Sie für Resource name (Ressourcenname)
calc
ein.Lassen Sie CORS(Cross Origin Resource Sharing) ausgeschaltet.
Wählen Sie Create Resource (Ressource erstellen) aus.
Indem Sie eine GET
Methode erstellen, die Abfragezeichenfolgenparameter an die Lambda-Funktion übergibt, ermöglichen Sie, dass API die von einem Browser aus aufgerufen werden kann. Dieser Ansatz kann nützlich sein, insbesondere für solche, APIs die offenen Zugriff ermöglichen.
Bei dieser Methode muss die POST
-Anforderung verwendet wird, um eine Lambda-Funktion aufzurufen. Dieses Beispiel zeigt, dass sich die HTTP Methode in einer Frontend-Methodenanfrage von der Integrationsanforderung im Backend unterscheiden kann.
So erstellen Sie eine GET
-Methode
Wählen Sie die /calc-Ressource und klicken Sie dann auf Methode erstellen.
Wählen Sie als Methodentyp die Option GET aus.
Für Integrationstyp wählen Sie AWS-Service aus.
Wählen Sie für den AWS-Region Ort aus AWS-Region, an dem Sie Ihre Lambda-Funktion erstellt haben.
Wählen Sie für AWS-Service Lambda aus.
Lassen Sie die AWS -Subdomain leer.
Wählen Sie als HTTPMethode die Option aus POST.
Wählen Sie für Aktionstyp Pfadüberschreibung verwenden aus. Diese Option ermöglicht es uns, die ARN Aktion „Aufrufen“ anzugeben, mit der unsere
Calc
Funktion ausgeführt werden soll.Geben Sie für Pfadüberschreibung
2015-03-31/functions/arn:aws:lambda:
ein. Geben Sie fürus-east-2
:account-id
:function:Calc/invocationsaccount-id
, AWS-Region an dem Sie Ihre Lambda-Funktion erstellt haben.us-east-2
Geben Sie unter Ausführungsrolle die Rolle ARN für
lambda_invoke_function_assume_apigw_role
ein.Die Einstellungen für Credential-Cache und Standard-Timeout bleiben unverändert.
Wählen Sie Einstellungen für Methodenanfragen aus.
Wählen Sie für Anforderungs-Validator die Option Abfragezeichenfolgeparameter und -Header validieren aus.
Mit dieser Einstellung wird eine Fehlermeldung zurückgegeben, falls der Client die erforderlichen Parameter nicht vorgibt.
Wählen Sie Parameter für die URL Abfragezeichenfolge aus.
Jetzt richten Sie Abfragezeichenfolgenparameter für die GETMethode in der /calc-Ressource ein, sodass sie Eingaben im Namen der Backend-Lambda-Funktion empfangen kann.
Gehen Sie wie folgt vor, um die Parameter für die Abfragezeichenfolge zu erstellen:
Wählen Sie Abfragezeichenfolge hinzufügen aus.
Geben Sie unter Name
operand1
ein.Aktivieren Sie die Option Erforderlich.
Caching bleibt ausgeschaltet.
Wiederholen Sie die obigen Schritte und erstellen Sie eine Abfragezeichenfolge mit dem Namen
operand2
sowie eine Abfragezeichenfolge mit dem Namenoperator
.Wählen Sie Methode erstellen aus.
Als Nächstes erstellen Sie eine Zuordnungsvorlage, um die vom Client bereitgestellten Abfragezeichenfolgen wie für die Calc
-Funktion erforderlich in die Integrationsanforderungs-Nutzlast zu übersetzen. Diese Vorlage ordnet die drei in Methodenanforderung deklarierten Abfragezeichenfolgenparameter den angegebenen Eigenschaftswerten des JSON Objekts als Eingabe für die Backend-Lambda-Funktion zu. Das transformierte JSON Objekt wird als Nutzlast für die Integrationsanfrage aufgenommen.
Zuordnen von Eingabeparametern zur Integrationsanforderung
Klicken Sie auf der Registerkarte Integrationsanfrage unter Einstellungen für Integrationsanfragen auf Bearbeiten.
Wählen Sie für Anforderungstext-Pass-Through die Option Wenn keine Vorlagen definiert sind (empfohlen) aus.
Wählen Sie Zuordnungsvorlagen aus.
Wählen Sie Add mapping template.
Geben Sie für Content type (Inhaltstyp)
application/json
ein.Geben Sie für Vorlagentext den folgenden Code ein:
{ "a": "$input.params('operand1')", "b": "$input.params('operand2')", "op": "$input.params('operator')" }
Wählen Sie Save (Speichern) aus.
Sie können nun Ihre GET
-Methode testen, um zu verifizieren, dass sie korrekt für einen Lambda-Funktionsaufruf eingerichtet wurde.
So testen Sie die GET
-Methode
-
Wählen Sie die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte anzuzeigen.
Für Abfrage-Zeichenketten geben Sie
operand1=2&operand2=3&operator=+
ein.-
Wählen Sie Test aus.
Die Ergebnisse sollten in etwa wie folgt aussehen:
Integration 2: Erstellen Sie eine POST
Methode mit einer JSON Nutzlast zum Aufrufen der Lambda-Funktion
Indem Sie eine POST
Methode mit einer JSON Nutzlast zum Aufrufen der Lambda-Funktion erstellen, sorgen Sie dafür, dass der Client die erforderlichen Eingaben für die Backend-Funktion im Anforderungstext bereitstellen muss. Damit sichergestellt ist, dass der Client die korrekten Eingabedaten hochlädt, aktivieren Sie die Anforderungsvalidierung für die Nutzlast.
Um eine POST
Methode mit einer Nutzlast zu erstellen JSON
Wählen Sie die /calc-Ressource und klicken Sie dann auf Methode erstellen.
Wählen Sie als Methodentyp die Option POST aus.
Für Integrationstyp wählen Sie AWS-Service aus.
Wählen Sie für den AWS-Region Ort aus AWS-Region, an dem Sie Ihre Lambda-Funktion erstellt haben.
Wählen Sie für AWS-Service Lambda aus.
Lassen Sie die AWS -Subdomain leer.
Wählen Sie als HTTPMethode die Option aus POST.
Wählen Sie für Aktionstyp Pfadüberschreibung verwenden aus. Diese Option ermöglicht es uns, die ARN Aktion „Aufrufen“ anzugeben, mit der unsere
Calc
Funktion ausgeführt werden soll.Geben Sie für Pfadüberschreibung
2015-03-31/functions/arn:aws:lambda:
ein. Geben Sie fürus-east-2
:account-id
:function:Calc/invocationsaccount-id
, AWS-Region an dem Sie Ihre Lambda-Funktion erstellt haben.us-east-2
Geben Sie unter Ausführungsrolle die Rolle ARN für
lambda_invoke_function_assume_apigw_role
ein.Die Einstellungen für Credential-Cache und Standard-Timeout bleiben unverändert.
Wählen Sie Methode erstellen aus.
Sie können nun ein Eingabe-Modell erstellen, dasdie Struktur der Eingabedaten beschreibt und den eingehenden Anfragetext validiert.
Erstellen eines Eingabemodells
-
Klicken Sie im Navigationsbereich auf Models (Modelle).
-
Wählen Sie Modell erstellen aus.
-
Geben Sie unter Name
input
ein. -
Geben Sie für Content type (Inhaltstyp)
application/json
ein.Wenn kein passender Inhaltstyp gefunden wird, wird die Anforderungsvalidierung nicht durchgeführt. Geben Sie
$default
ein, um das gleiche Modell unabhängig vom Inhaltstyp zu verwenden. -
Geben Sie für Modellschema Folgendes ein:
{ "type":"object", "properties":{ "a":{"type":"number"}, "b":{"type":"number"}, "op":{"type":"string"} }, "title":"input" }
Wählen Sie Modell erstellen aus.
Als Nächstes erstellen Sie ein Ausgabe-Modell. Dieses Modell definiert die Datenstruktur der berechneten Ausgabe vom Backend. Damit werden die Integrationsantwortdaten einem anderen Modell zugewiesen. In diesem Tutorial wird das Pass-Through-Verhalten verwendet, daher wird dieses Modell nicht benötigt.
Erstellen eines Ausgabemodells
-
Wählen Sie Modell erstellen aus.
-
Geben Sie unter Name
output
ein. -
Geben Sie für Content type (Inhaltstyp)
application/json
ein.Wenn kein passender Inhaltstyp gefunden wird, wird die Anforderungsvalidierung nicht durchgeführt. Geben Sie
$default
ein, um das gleiche Modell unabhängig vom Inhaltstyp zu verwenden. -
Geben Sie für Modellschema Folgendes ein:
{ "type":"object", "properties":{ "c":{"type":"number"} }, "title":"output" }
Wählen Sie Modell erstellen aus.
Als Nächstes erstellen Sie ein Ergebnis-Modell. Dieses Modell definiert die Datenstruktur der zurückgegebenen Antwortdaten. Es verweist sowohl auf das Eingabe - als auch auf das Ausgabeschema, das in Ihrem API definiert ist.
Erstellen eines Ergebnismodells
-
Wählen Sie Modell erstellen aus.
-
Geben Sie unter Name
result
ein. -
Geben Sie für Content type (Inhaltstyp)
application/json
ein.Wenn kein passender Inhaltstyp gefunden wird, wird die Anforderungsvalidierung nicht durchgeführt. Geben Sie
$default
ein, um das gleiche Modell unabhängig vom Inhaltstyp zu verwenden. -
Geben Sie für Modellschema das folgende Modell mit Ihrem ein
restapi-id
. Ihrrestapi-id
ist im folgenden Ablauf oben in der Konsole in Klammern aufgeführt:API Gateway > APIs > LambdaCalc (
abc123
).{ "type":"object", "properties":{ "input":{ "$ref":"https://apigateway.amazonaws.com/restapis/
restapi-id
/models/input" }, "output":{ "$ref":"https://apigateway.amazonaws.com/restapis/restapi-id
/models/output" } }, "title":"result" } Wählen Sie Modell erstellen aus.
Sie konfigurieren jetzt die Methodenanforderung Ihrer POST Methode so, dass die Anforderungsvalidierung für den Hauptteil der eingehenden Anfrage aktiviert wird.
Um die Anforderungsvalidierung für die POST Methode zu aktivieren
-
Klicken Sie im Hauptnavigationsbereich auf Ressourcen und wählen Sie dann die
POST
-Methode in der Ressourcenstruktur aus. -
Wählen Sie auf der Registerkarte Methodenanfrage unter Methodenanfrage-Einstellungen die Option Bearbeiten aus.
Wählen Sie für Anforderungs-Validator die Option Text validieren aus.
Wählen Sie Anforderungstext aus und klicken Sie dann auf Modell hinzufügen.
Geben Sie für Content type (Inhaltstyp)
application/json
ein.Wenn kein passender Inhaltstyp gefunden wird, wird die Anforderungsvalidierung nicht durchgeführt. Geben Sie
$default
ein, um das gleiche Modell unabhängig vom Inhaltstyp zu verwenden.Wählen Sie für Modell Eingabe aus.
Wählen Sie Save (Speichern) aus.
Sie können nun Ihre POST
-Methode testen, um zu verifizieren, dass sie korrekt für einen Lambda-Funktionsaufruf eingerichtet wurde.
So testen Sie die POST
-Methode
-
Wählen Sie die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte anzuzeigen.
Geben Sie als Hauptteil der Anfrage die folgende JSON Nutzlast ein.
{ "a": 1, "b": 2, "op": "+" }
-
Wählen Sie Test aus.
Die Ausgabe sollte folgendermaßen aussehen:
{ "a": 1, "b": 2, "op": "+", "c": 3 }
Integration 3: Erstellen Sie eine GET
-Methode mit Pfadparametern für den Aufruf der Lambda-Funktion
Jetzt erstellen Sie für eine Ressource eine GET
-Methode, die durch eine Abfolge von Pfadparametern angegeben wird, um damit die Lambda-Funktion im Backend aufzurufen. Die Werte der Pfadparameter geben die Eingabedaten für die Lambda-Funktion an. Sie definieren eine Mapping-Vorlage, um die eingehenden Pfadparameterwerte der erforderlichen Integrationsanforderungsnutzlast zuzuweisen.
Die resultierende API Ressourcenstruktur wird wie folgt aussehen:
Erstellen einer /{operand1}/{operand2}/{operator}-Ressource
Wählen Sie Create Resource (Ressource erstellen) aus.
Wählen Sie für Ressourcenpfad
/calc
aus.Geben Sie für Resource name (Ressourcenname)
{operand1}
ein.Lassen Sie CORS(Cross Origin Resource Sharing) ausgeschaltet.
Wählen Sie Create Resource (Ressource erstellen) aus.
Wählen Sie für Ressourcenpfad
/calc/{operand1}/
aus.Geben Sie für Resource name (Ressourcenname)
{operand2}
ein.Halten Sie CORS(Cross-Origin Resource Sharing) ausgeschaltet.
Wählen Sie Create Resource (Ressource erstellen) aus.
Wählen Sie für Ressourcenpfad
/calc/{operand1}/{operand2}/
aus.Geben Sie für Resource name (Ressourcenname)
{operator}
ein.Halten Sie CORS(Cross-Origin Resource Sharing) ausgeschaltet.
Wählen Sie Create Resource (Ressource erstellen) aus.
Dieses Mal verwenden Sie die integrierte Lambda-Integration in der API Gateway-Konsole, um die Methodenintegration einzurichten.
Einrichten einer Integrationsmethode
Wählen Sie die /{operand1}/{operand2}/{operator}-Ressource aus und klicken Sie dann auf Methode erstellen.
Wählen Sie als Methodentyp die Option GET aus.
Wählen Sie für den Integrationstyp die Option Lambda aus.
Lassen Sie Lambda proxy integration (Lambda-Proxyintegration) deaktiviert.
Wählen Sie für Lambda-Funktion den Ort aus, AWS-Region an dem Sie Ihre Lambda-Funktion erstellt haben, und geben Sie ein.
Calc
Das Standard-Timeout bleibt aktiviert.
Wählen Sie Methode erstellen aus.
Sie erstellen jetzt eine Zuordnungsvorlage, um die drei URL Pfadparameter, die bei der Erstellung der Ressource /calc/ {operand1}/{operand2}/{operator} deklariert wurden, bestimmten Eigenschaftswerten im Objekt zuzuordnen. JSON Da URL Pfade URL -kodiert sein müssen, muss der Divisionsoperator anstelle von als angegeben werden. %2F
/
Diese Vorlage übersetzt den %2F
in '/'
, bevor er an die Lambda-Funktion übergeben wird.
Erstellen einer Zuweisungsvorlage
Klicken Sie auf der Registerkarte Integrationsanfrage unter Einstellungen für Integrationsanfragen auf Bearbeiten.
Wählen Sie für Anforderungstext-Pass-Through die Option Wenn keine Vorlagen definiert sind (empfohlen) aus.
Klicken Sie auf Zuordnungsvorlage hinzufügen.
Geben Sie für Content type (Inhaltstyp)
application/json
ein.Geben Sie für Vorlagentext den folgenden Code ein:
{ "a": "$input.params('operand1')", "b": "$input.params('operand2')", "op": #if($input.params('operator')=='%2F')"/"#{else}"$input.params('operator')"#end }
Wählen Sie Save (Speichern) aus.
Sie können nun Ihre GET
-Methode testen, um zu verifizieren, dass sie korrekt für den Aufruf der Lambda-Funktion eingerichtet wurde, und dass die ursprüngliche Ausgabe ohne Zuweisung durch die Integrationsantwort weitergegeben wird.
So testen Sie die GET
-Methode
-
Wählen Sie die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte anzuzeigen.
-
Für Pfad gehen Sie wie folgt vor:
Geben Sie für operand1
1
ein.Geben Sie für operand2
1
ein.Geben Sie für operator
+
ein.
-
Wählen Sie Test aus.
-
Das Ergebnis sollte wie folgt aussehen:
Als Nächstes modellieren Sie die Datenstruktur für die Nutzlast der Methodenantwort nach dem result
-Schema.
Standardmäßig wird dem Methodenantworttext ein leeres Modell zugeordnet. Dadurch wird der Integrationsantworttext ohne Zuweisung übergeben. Wenn Sie jedoch eine SDK für eine der stark typisierten Sprachen wie Java oder Objective-C generieren, erhalten Ihre SDK Benutzer als Ergebnis ein leeres Objekt. Um sicherzustellen, dass sowohl der REST Client als auch die SDK Clients das gewünschte Ergebnis erhalten, müssen Sie die Antwortdaten anhand eines vordefinierten Schemas modellieren. Nachfolgend definieren Sie ein Modell für den Methodenantworttext und zum Erstellen einer Mapping-Vorlage, mit der der Integrationsantworttext in den Methodenantworttext umgewandelt wird.
Erstellen einer Methodenantwort
-
Klicken Sie auf der Registerkarte Methodenantwort unter Antwort 200 auf Bearbeiten.
-
Klicken Sie unter Anforderungstext auf Modell hinzufügen.
-
Geben Sie für Content type (Inhaltstyp)
application/json
ein. -
Wählen Sie für Modell Ergebnis aus.
-
Wählen Sie Save (Speichern) aus.
Wenn Sie das Modell für den Antworttext der Methode festlegen, wird sichergestellt, dass die Antwortdaten in das result
Objekt eines bestimmten Objekts umgewandelt werdenSDK. Um sicherzustellen, dass die Integrationsantwortdaten entsprechend zugewiesen werden, benötigen Sie eine Mapping-Vorlage.
Erstellen einer Zuweisungsvorlage
Klicken Sie auf der Registerkarte Integrationsantwort unter Standard - Antwort auf Bearbeiten.
Klicken Sie auf Zuordnungsvorlage hinzufügen.
Geben Sie für Content type (Inhaltstyp)
application/json
ein.Geben Sie für Vorlagentext den folgenden Code ein:
#set($inputRoot = $input.path('$')) { "input" : { "a" : $inputRoot.a, "b" : $inputRoot.b, "op" : "$inputRoot.op" }, "output" : { "c" : $inputRoot.c } }
Wählen Sie Save (Speichern) aus.
Testen der Zuweisungsvorlage
-
Wählen Sie die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte anzuzeigen.
-
Für Pfad gehen Sie wie folgt vor:
Geben Sie für operand1
1
ein.Geben Sie für operand2
2
ein.Geben Sie für operator
+
ein.
-
Wählen Sie Test aus.
-
Die Antwort wird wie folgt aussehen:
{ "input": { "a": 1, "b": 2, "op": "+" }, "output": { "c": 3 } }
Derzeit können Sie die Testfunktion nur API mithilfe der Testfunktion in der API Gateway-Konsole aufrufen. Um es für Clients verfügbar zu machen, müssen Sie Ihre bereitstellenAPI. Stellen Sie immer sicher, dass Sie Ihre erneut bereitstellen, API wenn Sie eine Ressource oder Methode hinzufügen, ändern oder löschen, eine Datenzuordnung aktualisieren oder die Stufeneinstellungen aktualisieren. Andernfalls sind neue Funktionen oder Updates für Ihre API Kunden nicht verfügbar, und zwar wie folgt:
So stellen Sie die API bereit
Wählen Sie BereitstellenAPI aus.
Wählen Sie für Stufe die Option Neue Stufe aus.
Geben Sie für Stage name (Stufenname)
Prod
ein.(Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.
Wählen Sie Bereitstellen.
-
(Optional) Unter Stage-Details können Sie für Invoke das Kopiersymbol auswählenURL, um Ihren API eigenen Aufruf URL zu kopieren. Sie können dies mit Tools wie Postman
und c verwenden, um Ihre URL zu testen . API
Anmerkung
Stellen Sie Ihre immer erneut bereit, API wenn Sie eine Ressource oder Methode hinzufügen, ändern oder löschen, eine Datenzuordnung aktualisieren oder die Staging-Einstellungen aktualisieren. Andernfalls stehen Ihren API Kunden keine neuen Funktionen oder Updates zur Verfügung.