Methode über die API Gateway-Konsole einrichten
Vor dem Einrichten einer API-Methode, überprüfen Sie Folgendes:
-
Die Methode muss in API Gateway verfügbar sein. Folgen Sie den Anweisungen in Tutorial: REST-API mit HTTP-API ohne Proxy-Integration erstellen.
-
Wenn die Methode mit einer Lambda-Funktion kommunizieren soll, müssen Sie die Lambda-Aufrufrolle und die Lambda-Ausführungsrolle bereits in IAM erstellt haben. Sie müssen außerdem die Lambda-Funktion erstellt haben, mit der Ihre Methode in AWS Lambda kommuniziert. Befolgen Sie zum Erstellen der Rollen und der Funktion die Anweisungen in Lambda-Funktion für die Nicht-Proxy-Integration von Lambda erstellen unter API Gateway REST-API mit Lambda-Integration erstellen.
-
Wenn Sie möchten, dass die Methode mit einer HTTP- oder HTTP-Proxy-Integration kommunizieren soll, muss die HTTP-Endpunkt-URL, mit der die Methode kommuniziert, bereits erstellt sein und Sie müssen Zugriff darauf haben.
-
Stellen Sie sicher, dass Ihre Zertifikate für HTTP- und HTTP-Proxy-Endpunkte von API Gateway unterstützt werden. Weitere Informationen finden Sie unter Von API Gateway unterstützte Autorisierungen für HTTP- und HTTP-Proxy-Integrationen.
Themen
API Gateway-Methodenanforderung in der API Gateway-Konsole einrichten
Befolgen Sie diese Anweisungen, um die API Gateway-Konsole zum Festlegen einer Anfrage/Antwort der API-Methode und zum Konfigurieren, wie die Methode Anfragen autorisiert, zu verwenden.
Für diese Anleitungen müssen die Schritte in API-Integrationsanfrage über die API Gateway-Konsole einrichten bereits abgeschlossen sein. Sie sind am Besten geeignet, um die Diskussionen unter API Gateway REST-API mit Lambda-Integration erstellen zu ergänzen.
-
Wählen Sie mit der im Bereich Resources ausgewählten Methode Method Request aus dem Bereich Method Execution aus.
-
Wählen Sie unter Settings das Bleistiftsymbol aus, um das Authorization-Dropdown-Menü zu öffnen und wählen Sie einen der verfügbaren Genehmiger aus.
-
Um einen offenen Zugriff auf die Methode für alle Benutzer zu aktivieren, wählen Sie
NONE
aus. Dieser Schritt kann übersprungen werden, wenn die Standardeinstellung nicht geändert wurde. -
Um IAM-Berechtigungen für die Steuerung des Client-Zugriffs auf die Methode zu verwenden, wählen Sie
AWS_IAM
aus. Mit dieser Auswahl können nur Benutzer der IAM-Rollen mit der korrekten angefügten IAM-Richtlinie diese Methode aufrufen.Legen Sie zum Erstellen der IAM-Rolle eine Zugriffsrichtlinie mit einem Format wie folgt fest:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "
resource-statement
" ] } ] }In dieser vordefinierten Zugriffsrichtlinie ist
resource-statement
der Wert des Feldes ARN im Abschnitt Authorization Settings. Weitere Informationen zum Festlegen der IAM-Berechtigungen finden Sie unter Kontrollieren des Zugriffs auf eine API mit IAM-Berechtigungen.Um die IAM-Rolle zu erstellen, können Sie die Anweisungen in „So erstellen Sie die Lambda-Aufrufrolle und ihre Richtlinie“ und „So erstellen Sie die Lambda-Ausführungsrolle und ihre Richtlinie“ im Abschnitt Lambda-Funktionen erstellen des API Gateway REST-API mit Lambda-Integration erstellen nutzen.
Klicken Sie auf Update, um die Auswahl zu speichern. Wählen Sie andernfalls Abbrechen.
-
Um einen Lambda-Genehmiger zu verwenden, wählen Sie ihn unter Token authorizer (Token-Genehmiger) aus. Sie müssen einen Lambda-Genehmiger erstellt haben, damit diese Auswahl im Dropdown-Menü angezeigt wird. Informationen über die Erstellung eines Lambda-Genehmigers finden Sie unter API Gateway-Lambda-Genehmiger verwenden.
-
Um einen Amazon Cognito-Benutzerpool zu verwenden, wählen Sie einen verfügbaren Benutzerpool unter Cognito user pool authorizers (Cognito-Benutzerpool-Genehmiger) aus. Sie müssen einen Benutzerpool in Amazon Cognito und einen Amazon Cognito-Benutzerpool-Genehmiger in API Gateway erstellt haben, damit diese Auswahl im Dropdown-Menü angezeigt wird. Informationen darüber, wie Sie einen Amazon Cognito-Benutzerpool-Genehmiger erstellen, finden Sie unter Zugriff auf eine REST-API mit Amazon Cognito-Benutzerpools als Genehmiger steuern.
-
-
Um eine Anforderungsvalidierung zu aktivieren oder zu deaktivieren, wählen Sie das Bleistiftsymbol aus dem Request Validator-Dropdown-Menü aus und wählen Sie eine der aufgeführten Optionen aus. Weitere Informationen zu den jeweiligen Optionen finden Sie unter Anfragevalidierung in API Gateway aktivieren.
-
Um einen API-Schlüssel erforderlich zu machen, wählen Sie das Bleistiftsymbol aus, um das API Key Required-Dropdown-Menü zu öffnen und wählen Sie entweder
true
oderfalse
entsprechend Ihrer API-Anforderungen aus. Wenn diese Option aktiviert ist, werden API-Schlüssel in Nutzungsplänen verwendet, um den Client-Datenverkehr zu drosseln. -
Fügen Sie der Methode wie folgt einen Abfragezeichenfolge-Parameter hinzu:
-
Wählen Sie den Pfeil neben URL Query String Parameters und dann Add query string.
-
Geben Sie unter Name den Namen des Abfragezeichenfolge-Parameters ein.
-
Wählen Sie das Häkchen-Symbol aus, um den neuen Abfragezeichenfolge-Parameternamen zu speichern.
-
Wenn der neu erstellte Abfragezeichenfolge-Parameter für die Anforderungsvalidierung verwendet wird, wählen Sie die Option Required aus. Weitere Informationen zur Anforderungsvalidierung finden Sie unter Anfragevalidierung in API Gateway aktivieren.
-
Wenn der neu erstellte Abfragezeichenfolge-Parameter als Teil eines Caching-Schlüssels verwendet wird, überprüfen Sie die Caching-Option. Dies gilt nur, wenn das Caching aktiviert ist. Weitere Informationen zum Caching finden Sie unter Verwenden der Methoden-/Integrationsparameter als Cache-Schlüssel, um zwischengespeicherte Antworten zu indizieren.
Tipp Zum Entfernen des Abfragezeichenfolge-Parameters, wählen Sie das ihm zugeordnete X-Symbol aus und wählen Sie dann Remove this parameter and any dependent parametersaus, um die Entfernung zu bestätigen.
Um den Namen des Abfragezeichenfolgen-Parameters zu ändern, entfernen Sie ihn und erstellen Sie dann einen neuen.
-
-
Fügen Sie der Methode wie folgt einen Header-Parameter hinzu:
-
Wählen Sie den Pfeil neben HTTP Request Headers und wählen Sie dann Add header.
-
Für Name geben Sie den Namen des Header-Parameters ein und wählen Sie dann das Häkchen-Symbol aus, um die Einstellungen zu speichern.
-
Wenn der neu erstellte Header-Parameter für die Anforderungsvalidierung verwendet wird, wählen Sie die Option Required aus. Weitere Informationen zur Anforderungsvalidierung finden Sie unter Anfragevalidierung in API Gateway aktivieren.
-
Wenn der neu erstellte Header-Parameter als Teil eines Caching-Schlüssels verwendet wird, wählen Sie die Caching-Option aus. Dies gilt nur, wenn das Caching aktiviert ist. Weitere Informationen zum Caching finden Sie unter Verwenden der Methoden-/Integrationsparameter als Cache-Schlüssel, um zwischengespeicherte Antworten zu indizieren.
Tipp Zum Entfernen des Header-Parameters, wählen Sie das ihm zugeordnete X-Symbol aus und wählen Sie dann Remove this parameter and any dependent parameters aus, um die Entfernung zu bestätigen.
Um den Namen des Header-Parameters zu ändern, entfernen Sie ihn und erstellen Sie dann einen neuen.
-
-
Um das Nutzlastformat einer Methodenanforderung mit dem
POST
,PUT
oderPATCH
-HTTP-Verb zu deklarieren, erweitern Sie Request Body und führen Sie die folgenden Schritte aus:-
Wählen Sie Add model aus.
-
Geben Sie einen MIME-Typ (beispielsweise
application/json
) für Content type ein. -
Öffnen Sie das Model name-Dropdown-Menü, um ein verfügbares Modell für die Nutzlast auszuwählen und wählen Sie das Häkchen-Symbol aus, um die Einstellungen zu speichern.
Die derzeit verfügbaren Modelle für die API umfassen die standardmäßigen
Empty
- undError
-Modelle sowie alle Modelle, die Sie erstellt und der Modell-Sammlung der API hinzugefügt haben. Weitere Informationen zum Erstellen eines Modells finden Sie unter Modell in API Gateway erstellen.Anmerkung Das Modell ist nützlich, um den Client über das erwartete Datenformat einer Nutzlast zu informieren. Es ist hilfreich, ein Mapping-Vorlagenskelett zu generieren. Es ist wichtig, einen stark typisierten SDK der API in solchen Sprachen wie Java, C#, Objective-C und Swift zu generieren. Es ist nur erforderlich, wenn die Anforderungsvalidierung für die Nutzlast aktiviert ist.
-
-
Um in einem Java-SDK dieser API, die von API Gateway generiert wird, einen Operationsnamen zuzuweisen, erweitern Sie SDK Settings (SDK-Einstellungen) und geben Sie einen Namen in Operation name (Operationsname) ein. Beispielsweise ist für die Methodenanforderung
GET /pets/{petId}
der entsprechende Java-SDK-Operationsname standardmäßigGetPetsPetId
. Dieser Name wird aus dem HTTP-Verb (GET
) der Methode und den Variablennamen des Ressourcenpfads (Pets
undPetId
) erstellt. Wenn Sie den Operationsnamen alsgetPetById
festlegen, wird der SDK-Operationsnamen zuGetPetById
.
API Gateway-Methodenantwort über die API Gateway-Konsole einrichten
Eine API-Methode kann über eine oder mehrere Antworten verfügen. Jede Antwort wird von ihrem HTTP-Statuscode indiziert. Standardmäßig fügt die API Gateway-Konsole den Antworten der Methode eine 200
-Antwort hinzu. Sie können dies ändern, z. B. so, dass die Methode stattdessen 201
zurückgibt. Sie können weitere Antworten hinzufügen, z. B. 409
bei Zugriffsverweigerungen und 500
bei Verwendungen nicht initialisierter Stufenvariablen.
Um die API Gateway-Konsole zum Ändern, Löschen oder Hinzufügen einer Antwort zu einer API-Methode zu verwenden, folgen Sie diesen Anweisungen.
-
Wählen Sie Methode Response von Method Execution für eine angegebene Methode einer API-Ressource aus.
-
Um eine neue Antwort hinzuzufügen, wählen Sie Add Response aus.
-
Geben Sie einen HTTP-Statuscode, z.B.
200
,400
oder500
, für HTTP-Status ein und wählen Sie dann das Häkchen-Symbol aus, um die Auswahl zu speichern.Wenn für eine vom Backend zurückgegebene Antwort keine entsprechende Methodenantwort definiert ist, kann API Gateway die Antwort nicht an den Client zurückgeben. Stattdessen gibt es eine
500 Internal server error
-Fehlerantwort zurück. -
Erweitern Sie die Antwort des angegebenen Statuscodes.
-
Wählen Sie Add Header aus.
-
Geben Sie einen Namen für Name unter Response Headers for
{status}
ein und wählen Sie dann das Häkchen-Symbol, um die Auswahl zu speichern.Wenn Sie einen beliebigen vom Backend zurückgegebenen Header in einen solchen umwandeln müssen, der in einer Methodenantwort definiert ist, müssen Sie zunächst den Methodenantwort-Header, wie in diesem Schritt beschrieben, hinzufügen.
-
Wählen Sie Add Response Model unter Response Body for
{status}
aus. -
Geben Sie den Medientyp der Antwortnutzlast für Content type ein und wählen Sie ein Modell aus dem Models-Dropdown-Menü aus.
-
Klicken Sie auf das Häkchen-Symbol, um die Einstellungen zu speichern.
-
-
Um eine vorhandene Antwort zu ändern, erweitern Sie die Antwort und befolgen Sie Schritt 2.
-
Um eine Antwort zu entfernen, wählen Sie das x-Symbol für die Antwort aus und bestätigen Sie, dass Sie die Antwort löschen möchten.
Für jede vom Backend zurückgegebene Antwort, müssen Sie über eine kompatible Antwort verfügen, die als Methodenantwort konfiguriert ist. Jedoch ist die Konfiguration der Methodenantwort-Header und des Nutzlastmodells optional, es sei denn, Sie weisen das Ergebnis des Backends der Methodenantwort vor der Rückgabe an den Client zu. Zudem ist ein Nutzlastmodell der Methodenantwort wichtig, wenn Sie einen stark typisierten SDK für Ihre API generieren.