Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Stufenvariablen für REST APIs in API Gateway einrichten

Fokusmodus
Stufenvariablen für REST APIs in API Gateway einrichten - 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.

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.

In diesem Abschnitt erfahren Sie, wie Sie mit der Amazon-API-Gateway-Konsole verschiedene Stufenvariablen für zwei Bereitstellungsstufen einer Beispiel-API einrichten. Für ein besseres Verständnis, wie Stufenvariablen in API Gateway verwendet werden, empfehlen wir, dass Sie alle Schritte in diesem Abschnitt befolgen.

Voraussetzungen

Überprüfen Sie vor Beginn, ob die folgenden Anforderungen erfüllt sind:

Aufrufen eines HTTP-Endpunkts über eine API mit einer Stufenvariable

In diesem Verfahren wird beschrieben, wie Sie eine Stufenvariable für einen HTTP-Endpunkt und zwei Stufen für Ihre API erstellen. Darüber hinaus erstellen Sie die Stufenvariablen url, stageName und function, die in den folgenden Abläufen in diesem Abschnitt verwendet werden.

Aufrufen eines HTTP-Endpunkts über eine API mit einer Stufenvariable
  1. Melden Sie sich bei der API Gateway Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.

  2. Erstellen Sie eine API und anschließend eine GET-Methode für die Root-Ressource der API. Stellen Sie den Integrationstyp auf HTTP und die Endpunkt-URL auf http://${stageVariables.url}.

  3. Stellen Sie die API für eine neue Stufe namens beta bereit.

  4. Wählen Sie im Navigationsbereich Stages (Stufen) die Stufe beta.

  5. Wählen Sie auf der Registerkarte Stage variables (Stufenvariablen) die Option Edit (Bearbeiten) aus.

  6. Wählen Sie Add stage variable (Stufenvariable hinzufügen).

  7. Geben Sie unter Name url ein. Geben Sie für Value (Wert) httpbin.org/get ein.

  8. Wählen Sie Add stage variable (Stufenvariable hinzufügen) und gehen Sie wie folgt vor:

    Geben Sie unter Name stageName ein. Geben Sie für Value (Wert) beta ein.

  9. Wählen Sie Add stage variable (Stufenvariable hinzufügen) und gehen Sie wie folgt vor:

    Geben Sie unter Name function ein. Geben Sie für Value (Wert) HelloWorld ein.

  10. Wählen Sie Save (Speichern) aus.

  11. Erstellen Sie nun eine zweite Stufe. Wählen Sie im Navigationsbereich Stages (Stufen) die Option Create stage (Stufe erstellen). Geben Sie für Stage name (Stufenname) prod ein. Wählen Sie in Deployment (Bereitstellung) eine kürzlich ausgeführte Bereitstellung und anschließend Create stage (Stufe erstellen) aus.

  12. Legen Sie wie im Fall der Phase beta die gleichen drei Stufenvariablen (url, stageName und function) auf unterschiedliche Werte fest („petstore-demo-endpoint.execute-api.com/petstore/pets“, „prod“ und „HelloEveryone“).

  13. Wählen Sie im Navigationsbereich Stages beta. Wählen Sie unter Stage details (Stufendetails) das Kopiersymbol, um die Aufruf-URL Ihrer API zu kopieren, und geben Sie dann die Aufruf-URL Ihrer API in einen Webbrowser ein. Hierdurch wird die beta-Stufen-Anforderung GET für die Stammressource der API gestartet.

    Anmerkung

    Der Link Invoke URL verweist auf die Stammressource der API auf der beta-Stufe. Durch die Eingabe der URL in einem Webbrowser wird die beta-Stufenmethode GET für die Stammressource aufgerufen. Wenn Methoden für untergeordnete Ressourcen und nicht für die Stammressource selbst definiert sind, erhalten Sie bei der Eingabe der URL in einen Webbrowser die Fehlermeldung {"message":"Missing Authentication Token"}. In diesem Fall müssen Sie dem Link Invoke URL den Namen einer spezifischen untergeordneten Ressource anfügen.

  14. Im Folgenden wird die Antwort angezeigt, die Sie von der beta-Stufen-Anforderung GET erhalten. Sie können das Ergebnis auch überprüfen, indem Sie in einem Browser zu http://httpbin.org/get navigieren. Dieser Wert wurde der url-Variablen in der beta-Stufe zugewiesen. Die beiden Antworten sind identisch.

  15. Wählen Sie im Navigationsbereich Stages die Stufe prod. Wählen Sie unter Stage details (Stufendetails) das Kopiersymbol, um die Aufruf-URL Ihrer API zu kopieren, und geben Sie dann die Aufruf-URL Ihrer API in einen Webbrowser ein. Hierdurch wird die prod-Stufen-Anforderung GET für die Stammressource der API gestartet.

  16. Im Folgenden wird die Antwort angezeigt, die Sie von der prod-Stufen-Anforderung GET erhalten. Sie können das Ergebnis überprüfen, indem Sie in einem Browser zu http://.execute-api navigieren. petstore-demo-endpoint com/petstore/pets. Dieser Wert wurde der url-Variablen in der prod-Stufe zugewiesen. Die beiden Antworten sind identisch.

Übergabe phasenspezifischer Metadaten an ein HTTP-Backend

In diesem Verfahren wird beschrieben, wie stufenbezogene Metadaten mittels eines Stufenvariablenwerts in einem Abfrageparameterausdruck an ein HTTP-Backend übergeben werden. Hier verwenden wir die stageName-Stufenvariable, die im vorangegangenen Verfahren deklariert wurde.

Übergabe phasenspezifischer Metadaten an ein HTTP-Backend
  1. Wählen Sie im Navigationsbereich Resource die Methode GET.

    Um der URL der Methode einen Abfragezeichenfolge-Parameter hinzuzufügen, wählen Sie die Registerkarte Method Request (Methodenanforderung) und anschließend im Abschnitt Method request settings (Einstellungen der Methodenanforderung) die Option Edit (Bearbeiten).

  2. Wählen Sie URL query string parameters (URL-Abfragezeichenfolgen-Parameter) und gehen Sie wie folgt vor:

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

    2. Geben Sie unter Name stageName ein.

    3. Lassen Sie die Optionen Required (Obligatorisch) and Caching (Cache) deaktiviert.

  3. Wählen Sie Save (Speichern) aus.

  4. Wählen Sie die Registerkarte Integration request (Integrationsanforderung) und dann im Abschnitt Integration request settings (Einstellungen für Integrationsanforderungen) die Option Edit (Bearbeiten) aus.

  5. Fügen Sie bei Endpoint URL (Endpunkt-URL) den Wert ?stageName=${stageVariables.stageName} an den zuvor definierten URL-Wert an, damit die gesamte Endpoint URL (Endpunkt-URL) http://${stageVariables.url}?stageName=${stageVariables.stageName} lautet.

  6. Wählen Sie Deploy API (API bereitstellen) und wählen Sie die Stufe beta aus.

  7. Klicken Sie im Hauptnavigationsbereich auf Stages (Stufen). Wählen Sie im Navigationsbereich Stages beta. Wählen Sie unter Stage details (Stufendetails) das Kopiersymbol, um die Aufruf-URL Ihrer API zu kopieren, und geben Sie dann die Aufruf-URL Ihrer API in einen Webbrowser ein.

    Anmerkung

    Sie verwenden hier die beta-Stufe, da der HTTP-Endpunkt (von der url-Variable mit "http://httpbin.org/get" angegeben) Abfrageparameterausdrücke annimmt und diese in der Antwort als args-Objekt zurückgibt.

  8. Sie erhalten die folgende Antwort. Beachten Sie, dass beta (zugeordnet zur stageName-Stufenvariable) als stageName-Argument an das Backend übergeben wird.

    Antwort der GET-Methode der API über einen HTTP-Endpunkt mit der url-Stufenvariable.

Aufrufen einer Lambda-Funktion über eine API mit einer Stufenvariable

In diesem Verfahren wird beschrieben, wie Sie eine Stufenvariable verwenden, um eine Lambda-Funktion als Backend der API aufzurufen. Hier verwenden Sie die function-Stufenvariable, die in Aufrufen eines HTTP-Endpunkts über eine API mit einer Stufenvariable deklariert wurde.

Wenn Sie eine Lambda-Funktion als Wert einer Stufenvariable festlegen, verwenden Sie den lokalen Namen der Funktion und binden den Alias oder die Versionsangabe ein, z. B. HelloWorld, HelloWorld:1 oder HelloWorld:alpha. Nutzen Sie nicht den ARN der Funktion (z. B, arn:aws:lambda:us-east-1:123456789012:function:HelloWorld). Die API Gateway-Konsole betrachtet den Stufenvariablenwert einer Lambda-Funktion als unvollständigen Funktionsnamen und erweitert die Stufenvariable zu einem ARN.

Aufrufen einer Lambda-Funktion über eine API mit einer Stufenvariable
  1. Erstellen Sie eine Lambda-Funktion namens HelloWorld mit der Laufzeit Node.js. Der Code muss Folgendes enthalten:

    export const handler = function(event, context, callback) { if (event.stageName) callback(null, 'Hello, World! I\'m calling from the ' + event.stageName + ' stage.'); else callback(null, 'Hello, World! I\'m not sure where I\'m calling from...'); };

    Weitere Informationen zum Erstellen einer Lambda-Funktion finden Sie unter Erste Schritte mit der REST-API-Konsole.

  2. Wählen Sie im Bereich Ressources (Ressourcen) die Option Create resource (Ressource erstellen) aus, und gehen Sie dann wie folgt vor:

    1. Wählen Sie für Resource path (Ressourcenpfad) die Option/aus.

    2. Geben Sie für Resource name (Ressourcenname) lambdav1 ein.

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

  3. Wählen Sie die /lambdav1-Ressource aus und klicken Sie dann auf Methode erstellen.

    Führen Sie dann die folgenden Schritte aus:

    1. Wählen Sie als Methodentyp die Option GET (Abrufen) aus.

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

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

    4. Geben Sie für die Lambda function (Lambda-Funktion) ${stageVariables.function} ein.

      Erstellen einer GET-Methode, die in eine Lambda-Funktion integriert ist (wie festgelegt über die function-Stufenvariable)
      Tipp

      Wenn Sie zum Befehl Add permission aufgefordert werden, kopieren Sie den Befehl add-permission. Sie müssen den Befehl für jede Lambda-Funktion ausführen, die der function-Stufenvariable zugewiesen werden soll. Wenn der $stageVariables.function-Wert beispielsweise HelloWorld lautet, führen Sie den folgenden AWS CLI -Befehl aus:

      aws lambda add-permission --function-name arn:aws:lambda:us-east-1:account-id:function:HelloWorld --source-arn arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/lambdav1 --principal apigateway.amazonaws.com --statement-id statement-id-guid --action lambda:InvokeFunction

      Falls das nicht geschieht, führt der Aufruf der Methode zur Fehlermeldung 500 Internal Server Error. Ersetzen Sie ${stageVariables.function} durch den Lambda-Funktionsnamen, der dieser Stufenvariable zugeordnet ist.

      AWS CLI Befehl, um der Lambda-Funktion die Erlaubnis zu geben, von der von Ihnen erstellten Methode aufgerufen zu werden.
    5. Wählen Sie Methode erstellen aus.

  4. Stellen Sie die API in den Stufen prod und beta bereit.

  5. Klicken Sie im Hauptnavigationsbereich auf Stages (Stufen). Wählen Sie im Navigationsbereich Stages beta. Wählen Sie unter Stage details (Stufendetails) das Kopiersymbol, um die Aufruf-URL Ihrer API zu kopieren, und geben Sie dann die Aufruf-URL Ihrer API in einen Webbrowser ein. Hängen Sie /lambdav1 an die URL an, bevor Sie die Eingabetaste drücken.

    Sie erhalten die folgende Antwort.

    "Hello, World! I'm not sure where I'm calling from..."

Übergeben von stufenbezogenen Metadaten an eine Lambda-Funktion über eine Stufenvariable

In diesem Verfahren wird beschrieben, wie stufenbezogene Konfigurationsmetadaten mittels einer Stufenvariable an eine Lambda-Funktion übergeben werden. Erstellen Sie eine POST-Methode und eine Eingabe-Mapping-Vorlage, um Nutzlast mit der zuvor deklarierten stageName-Stufenvariable zu generieren.

Übergeben von stufenbezogenen Metadaten an eine Lambda-Funktion über eine Stufenvariable
  1. Wählen Sie die /lambdav1-Ressource aus und klicken Sie dann auf Methode erstellen.

    Führen Sie dann die folgenden Schritte aus:

    1. Wählen Sie unter Method type (Methodentyp) die Option POST aus.

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

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

    4. Geben Sie für die Lambda function (Lambda-Funktion) ${stageVariables.function} ein.

    5. Wenn Sie zum Befehl Add permission aufgefordert werden, kopieren Sie den Befehl add-permission. Sie müssen den Befehl für jede Lambda-Funktion ausführen, die der function-Stufenvariable zugewiesen werden soll.

    6. Wählen Sie Methode erstellen aus.

  2. Wählen Sie die Registerkarte Integration request (Integrationsanforderung) und dann im Abschnitt Integration request settings (Einstellungen für Integrationsanforderungen) die Option Edit (Bearbeiten) aus.

  3. Wählen Sie Mapping-Vorlagen aus und klicken Sie dann auf Mapping-Vorlage hinzufügen.

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

  5. Geben Sie für Template body (Vorlagentext) die folgende Vorlage ein:

    #set($inputRoot = $input.path('$')) { "stageName" : "$stageVariables.stageName" }
    Anmerkung

    In einer Mapping-Vorlage muss eine Stufenvariable in Anführungszeichen (wie in "$stageVariables.stageName" oder "${stageVariables.stageName}") referenziert werden. An anderen Stellen muss sie ohne Anführungszeichen (wie in ) referenziert werd ${stageVariables.function}).

  6. Wählen Sie Save (Speichern) aus.

  7. Stellen Sie die API in den Stufen beta und prod bereit.

  8. Gehen Sie wie folgt vor, um einen REST-API-Client zum Übergeben von stufenspezifischen Metadaten zu verwenden:

    1. Wählen Sie im Navigationsbereich Stages beta. Wählen Sie unter Stage details (Stufendetails) das Kopiersymbol, um die Aufruf-URL Ihrer API zu kopieren, und geben Sie dann die Aufruf-URL Ihrer API in das Eingabefeld eines REST-API-Clients ein. Hängen Sie /lambdav1 an, bevor Sie Ihre Anfrage absenden.

      Sie erhalten die folgende Antwort.

      "Hello, World! I'm calling from the beta stage."
    2. Wählen Sie im Navigationsbereich Stages (Stufen) die Option prod. Wählen Sie unter Stage details (Stufendetails) das Kopiersymbol, um die Aufruf-URL Ihrer API zu kopieren, und geben Sie dann die Aufruf-URL Ihrer API in das Eingabefeld eines REST-API-Clients ein. Hängen Sie /lambdav1 an, bevor Sie Ihre Anfrage absenden.

      Sie erhalten die folgende Antwort.

      "Hello, World! I'm calling from the prod stage."
  9. Gehen Sie wie folgt vor, um die Funktion Test zum Übergeben von stufenspezifischen Metadaten zu verwenden:

    1. Wählen Sie im Navigationsbereich Resources (Ressourcen) die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte anzuzeigen.

    2. Geben Sie für function HelloWorld ein.

    3. Geben Sie für stageName beta ein.

    4. Wählen Sie Test aus. Sie müssen Ihrer POST-Anfrage keinen Text hinzufügen.

      Sie erhalten die folgende Antwort.

      "Hello, World! I'm calling from the beta stage."
    5. Sie können die vorherigen Schritte wiederholen, um die Prod-Stufe zu testen. Geben Sie für stageName Prod ein.

      Sie erhalten die folgende Antwort.

      "Hello, World! I'm calling from the prod stage."
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.