Mit Stufen für HTTP-APIs arbeiten - Amazon API 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.

Mit Stufen für HTTP-APIs arbeiten

Eine API-Stufe ist ein logischer Verweis auf einen Lebenszyklusstatus Ihrer API (z. B. dev, prod, beta oder v2). API-Stufen werden durch ihre API-ID und den Stufennamen identifiziert und sind in der URL enthalten, die Sie zum Aufrufen der API verwenden. Jede Stufe ist ein benannter Verweis auf eine Bereitstellung der API und wird für Clientanwendungen zum Aufrufen zur Verfügung gestellt.

Sie können eine $default-Phase erstellen, die beispielsweise von der Basis der URL Ihrer API bereitgestellt wird, z. B. https://{api_id}.execute-api.{region}.amazonaws.com/. Sie verwenden diese URL, um eine API-Phase aufzurufen.

Eine Bereitstellung ist ein Snapshot Ihrer API-Konfiguration. Nachdem Sie eine API in einer Phase bereitgestellt haben, kann sie von Clients aufgerufen werden. Sie müssen eine API bereitstellen, damit Änderungen wirksam werden. Wenn Sie automatische Bereitstellungen aktivieren, werden Änderungen an einer API automatisch für Sie freigegeben.

Stufenvariablen

Stufenvariablen sind Schlüssel-Werte-Paare, die Sie für eine Stufe einer HTTP-API definieren können. Sie weisen dasselbe Verhalten auf wie Umgebungsvariablen und können für die API-Einrichtung verwendet werden.

Sie können beispielsweise eine Stufenvariable definieren und dann ihren Wert als HTTP-Endpunkt für eine HTTP-Proxy-Integration festlegen. Später können Sie den Endpunkt mithilfe des zugeordneten Stufenvariablennamens referenzieren. Auf diese Weise können Sie in jeder Stufe dieselbe API-Einrichtung mit einem anderen Endpunkt verwenden. Ebenso können Sie Stufenvariablen verwenden, um für jede Stufe Ihrer API eine andere AWS Lambda-Funktionsintegration anzugeben.

Anmerkung

Stage-Variablen sind nicht dazu gedacht, für sensible Daten wie Anmeldeinformationen verwendet zu werden. Um sensible Daten an Integrationen weiterzugeben, verwenden Sie einen AWS Lambda-Genehmiger. Sie können sensible Daten an Integrationen in der Ausgabe des Lambda-Genehmigers übergeben. Weitere Informationen hierzu finden Sie unter Antwortformat des Lambda-Genehmigers.

Beispiele

Wenn Sie eine Stufenvariable zum Anpassen des HTTP-Integrationsendpunkts verwenden möchten, müssen Sie zunächst den Namen und den Wert der Stufenvariablen (z. B. url) mit dem Wert example.com festlegen. Richten Sie als Nächstes eine HTTP-Proxy-Integration ein. Anstatt die URL des Endpunkts einzugeben, können Sie API Gateway anweisen, den Wert der Stufenvariablen zu verwenden, http://${stageVariables.url}. Dieser Wert weist API Gateway an, Ihre Stufenvariable ${} zur Laufzeit abhängig von der Stufe Ihrer API zu ersetzen.

Sie können Stufenvariablen auf ähnliche Weise referenzieren, um einen Lambda-Funktionsnamen oder einen AWS-Rollen-ARN anzugeben.

Wenn Sie einen Lambda-Funktionsnamen als Stufenvariablenwert angeben, müssen Sie die Berechtigungen für die Lambda-Funktion manuell konfigurieren. Dafür können Sie die AWS Command Line Interface (AWS CLI) verwenden.

aws lambda add-permission --function-name arn:aws:lambda:XXXXXX:your-lambda-function-name --source-arn arn:aws:execute-api:us-east-1:YOUR_ACCOUNT_ID:api_id/*/HTTP_METHOD/resource --principal apigateway.amazonaws.com --statement-id apigateway-access --action lambda:InvokeFunction

API Gateway Stufenvariablenreferenz

HTTP-Integrations-URIs

Sie können eine Stufenvariable als Teil einer HTTP-Integrations-URI verwenden, wie in den folgenden Beispielen gezeigt.

  • Eine vollständige URI ohne Protokoll – http://${stageVariables.<variable_name>}

  • Eine vollständige Domäne – http://${stageVariables.<variable_name>}/resource/operation

  • Eine Unterdomäne – http://${stageVariables.<variable_name>}.example.com/resource/operation

  • Ein Pfad – http://example.com/${stageVariables.<variable_name>}/bar

  • Eine Abfragezeichenfolge – http://example.com/foo?q=${stageVariables.<variable_name>}

Lambda-Funktionen

Sie können eine Stufenvariable anstelle eines Integrationsnamens oder Alias für die Lambda-Funktion verwenden, wie in den folgenden Beispielen gezeigt.

  • arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:${stageVariables.<function_variable_name>}/invocations

  • arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:<function_name>:${stageVariables.<version_variable_name>}/invocations

Anmerkung

Um eine Stufenvariable für eine Lambda-Funktion zu verwenden, muss sich die Funktion im selben Konto wie die API befinden. Stufenvariablen unterstützen keine kontoübergreifenden Lambda-Funktionen.

AWS-Integrationsanmeldeinformationen

Sie können eine Stufenvariable als Teil eines ARN für AWS-Benutzer- oder Rollenanmeldeinformationen verwenden, wie im folgenden Beispiel gezeigt.

  • arn:aws:iam::<account_id>:${stageVariables.<variable_name>}