Tutorial: API Gateway REST-API mit kontenübergreifender Lambda-Proxy-Integration erstellen - Amazon API Gateway

Tutorial: API Gateway REST-API mit kontenübergreifender Lambda-Proxy-Integration erstellen

Sie können nun eine AWS Lambda-Funktion eines anderen AWS-Kontos als API-Integrations-Backend verwenden. Jedes Konto kann sich in jeder Region befinden, in der Amazon API Gateway verfügbar ist. Dies erleichtert das zentrale Verwalten und Teilen von Lambda-Backend-Funktionen über verschiedene APIs hinweg.

In diesem Abschnitt zeigen wir, wie die kontoübergreifende Lambda-Proxy-Integration mit Hilfe der Amazon API Gateway-Konsole konfiguriert wird.

Zuerst erstellen Sie die Beispiel-API aus Tutorial: Erstellen einer REST-API durch Importieren eines Beispiels in einem Konto. Dann erstellen wir eine Lambda-Funktion in einem anderen Konto. Schließlich verwenden wir die kontoübergreifende Lambda-Integration, damit die Beispiel-API die Lambda-Funktion verwenden kann, die wir im zweiten Konto erstellt haben.

API für die kontenübergreifende Lambda-Integration mit API Gateway erstellen

Erstellen Sie zunächst die Beispiel-API wie in beschriebe Tutorial: Erstellen einer REST-API durch Importieren eines Beispiels.

So erstellen Sie die Beispiel-API
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wenn Sie API Gateway zum ersten Mal verwenden, sehen Sie eine Seite, die Sie mit den Funktionen des Service vertraut macht. Wählen Sie unter REST-API die Option Build (Erstellen) aus. Wenn das Popup-Fenster Create Exampe API (Beispiel-API erstellen) angezeigt wird, klicken Sie auf OK.

    Wenn Sie API Gateway nicht zum ersten Mal verwenden, wählen Sie Create API (API erstellen). Wählen Sie unter REST-API die Option Build (Erstellen) aus.

  3. Wählen Sie unter Create new API (Neue API erstellen) Examples API (Beispiel-API) aus.

  4. Wählen Sie Import (Importieren) aus, um die Beispiel-API zu erstellen.

Lambda-Integrationsfunktion in einem anderen Konto erstellen

Jetzt erstellen Sie eine Lambda-Funktion in einem anderen Konto über das Konto, über das Sie die Beispiel-API erstellt haben.

Erstellen einer Lambda-Funktion in einem anderen Konto
  1. Melden Sie sich bei der Lambda-Konsole in einem anderen Konto als dem an, in dem Sie Ihre API Gateway-API erstellt haben.

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

  3. Wählen Sie Author from scratch aus.

  4. Verfahren Sie unter Author from scratch wie folgt:

    1. Geben Sie als Function name (Funktionsname) einen Namen ein.

    2. Wählen Sie aus der Dropdown-Liste Runtime (Laufzeit) eine unterstützte Node.js-Laufzeit aus.

    3. Erweitern Sie unter Permissions (Berechtigungen) den Bereich Choose or create an execution role (Ausführungsrolle wählen oder erstellen). Sie können eine Rolle erstellen oder eine vorhandene Rolle auswählen.

    4. Wählen Sie Create function aus, um fortzufahren.

  5. Scrollen Sie nach unten bis zum Bereich Function code (Funktionscode).

  6. Kopieren Sie die Node.js-Funktionsimplementierung aus und fügen Sie sie ei Tutorial: Hello World REST-API mit Lambda-Proxy-Integration erstellen.

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

  8. Beachten Sie den vollständigen ARN für Ihre Funktion (in der rechten oberen Ecke des Bereichs der Lambda-Funktion). Sie benötigen diese, wenn Sie Ihre kontoübergreifende Lambda-Integration erstellen.

Kontoübergreifende Lambda-Integration konfigurieren

Sobald Sie eine Lambda-Integrationsfunktion in einem anderen Konto haben, können Sie die API Gateway-Konsole verwenden, um sie zu Ihrer API in Ihrem ersten Konto hinzuzufügen.

Anmerkung

Wenn Sie einen regionsübergreifenden, kontoübergreifenden Genehmiger konfigurieren, sollte der sourceArn, der zur Zielfunktion hinzugefügt wird, die Region der Funktion verwenden, nicht die Region der API.

Kontoübergreifende Lambda-Integration konfigurieren
  1. Wählen Sie in der API Gateway-Konsole Ihre API aus.

  2. Wählen Sie Resources aus.

  3. Wählen Sie im Bereich Resources (Ressourcen) die oberste GET-Methode aus.

  4. Wählen Sie im Bereich Method Execution die Option Integration Request.

  5. Für Integration type (Integrationstyp) wählen Sie Lambda Function (Lambda-Funktion).

  6. Markieren Sie Use Lambda Proxy integration (Lambda-Proxy-Integration verwenden).

  7. Lassen Sie Lambda Region auf die Region Ihres Kontos festgelegt.

  8. Für Lambda Function (Lambda-Funktion) fügen Sie den vollständigen ARN für die Lambda-Funktion ein (oder kopieren diesen), die Sie in Ihrem zweiten Konto erstellt haben, und wählen Sie das Häkchen aus.

  9. Ein Popup-Fenster mit folgender Meldung wird angezeigt: Der Lambda-Funktion eine Berechtigung hinzufügen: Sie haben eine Lambda-Funktion aus einem anderen Konto ausgewählt. Please ensure that you have the appropriate Function Policy on this function. Führen Sie dazu den folgenden AWS CLI-Befehl im Konto 123456789012 aus, gefolgt von einer aws lambda add-permission-Befehlszeichenfolge:

  10. Kopieren Sie die aws lambda add-permission-Befehlszeichenfolge in ein AWS CLI-Fenster, das für Ihr zweites Konto konfiguriert ist. Dadurch erhält Ihr erstes Konto Zugriff auf die Lambda-Funktion Ihres zweiten Kontos.

  11. Klicken Sie im Popup-Fenster aus dem vorherigen Schritt auf OK.

  12. So zeigen Sie die aktualisierte Richtlinie für Ihre Funktion in der Lambda-Konsole an:

    1. Wählen Sie Ihre Integrationsfunktion aus.

    2. Wählen Sie Permissions.

    Sie sollten eine Allow-Richtlinie mit einer Condition-Klausel sehen, in der AWS:SourceArn die ARN für die GET-Methode Ihrer API ist.