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
-
Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway
an. -
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.
-
Wählen Sie unter Create new API (Neue API erstellen) Examples API (Beispiel-API) aus.
-
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
-
Melden Sie sich bei der Lambda-Konsole in einem anderen Konto als dem an, in dem Sie Ihre API Gateway-API erstellt haben.
-
Wählen Sie Create function (Funktion erstellen).
-
Wählen Sie Author from scratch aus.
-
Verfahren Sie unter Author from scratch wie folgt:
-
Geben Sie als Function name (Funktionsname) einen Namen ein.
-
Wählen Sie aus der Dropdown-Liste Runtime (Laufzeit) eine unterstützte Node.js-Laufzeit aus.
-
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.
-
Wählen Sie Create function aus, um fortzufahren.
-
-
Scrollen Sie nach unten bis zum Bereich Function code (Funktionscode).
-
Kopieren Sie die Node.js-Funktionsimplementierung aus und fügen Sie sie ei Tutorial: Hello World REST-API mit Lambda-Proxy-Integration erstellen.
-
Wählen Sie Deploy (Bereitstellen) aus.
-
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.
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
-
Wählen Sie in der API Gateway-Konsole Ihre API aus.
-
Wählen Sie Resources aus.
-
Wählen Sie im Bereich Resources (Ressourcen) die oberste
GET
-Methode aus. -
Wählen Sie im Bereich Method Execution die Option Integration Request.
-
Für Integration type (Integrationstyp) wählen Sie Lambda Function (Lambda-Funktion).
-
Markieren Sie Use Lambda Proxy integration (Lambda-Proxy-Integration verwenden).
-
Lassen Sie Lambda Region auf die Region Ihres Kontos festgelegt.
-
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.
-
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 eineraws lambda add-permission
-Befehlszeichenfolge: -
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. -
Klicken Sie im Popup-Fenster aus dem vorherigen Schritt auf OK.
-
So zeigen Sie die aktualisierte Richtlinie für Ihre Funktion in der Lambda-Konsole an:
-
Wählen Sie Ihre Integrationsfunktion aus.
-
Wählen Sie Permissions.
Sie sollten eine
Allow
-Richtlinie mit einerCondition
-Klausel sehen, in derAWS:SourceArn
die ARN für dieGET
-Methode Ihrer API ist. -