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

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

Sie können nun eine AWS Lambda-Funktion eines anderen AWS-Kontos als API-Integrations-Backend verwenden. Das Konto kann aus jeder Region stammen, 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 Ihnen die kontoübergreifende Amazon API Gateway-Proxy-Integration mit der Lambda-Konsole.

Zuerst erstellen Sie die Beispiel-API aus Tutorial: Erstellen einer REST-API durch Importieren eines Beispiels in einem Konto. Anschließend erstellen Sie eine Lambda Funktion in einem anderen Konto. Abschließend verwenden Sie die kontoübergreifende Lambda-Integration, um der Beispiel-API die Verwendung der Lambda-Funktion zu gestatten, die im zweiten Konto erstellt wurde.

Erstellen einer API für eine kontoübergreifende API Gateway Lambda-Integration

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

So erstellen Sie die Beispiel-API

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

  2. Wenn Sie API Gateway erstmals verwenden, wird eine Seite mit einer Einführung in die Funktionen des Service angezeigt. 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 erstmalig 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.

Erstellen einer Lambda-Integrationsfunktion in einem anderen Konto

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 über das Konto an, über das Sie die API Gateway-API erstellt haben.

  2. Wählen Sie Create function.

  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 Tutorial: Erstellen einer Hello World-REST API mit Lambda-Proxy-Integration und fügen Sie sie ein.

  7. Wählen Sie Save 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 ihn beim Erstellen Ihrer kontoübergreifenden Lambda-Integration.

Konfigurieren einer kontoübergreifenden Lambda-Integration

Sobald Sie über eine Funktion für eine Lambda-Integration in einem anderen Konto verfügen, können Sie diese mit der API Gateway-Konsole zur API in Ihrem ersten Konto hinzufü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.

Konfigurieren einer kontoübergreifenden Lambda-Integration

  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. Wählen Sie unter Integration type (Integrationstyp) Lambda Function -Funktion) aus.

  6. Aktivieren Sie Use Proxy integrationLambda-Proxy-Integration verwenden).

  7. Lambda Region sollte auf die Region Ihres Kontos gesetzt sein.

  8. Kopieren Sie für Lambda-Funktion den vollständigen ARN der Lambda-Funktion, die Sie im zweiten Konto erstellt haben, fügen Sie diesen ein und wählen Sie das Häkchen aus.

  9. Sie sehen ein Popup mit folgendem Wortlaut Add Permission to LambdaFunction: You have selected a Lambda function from another account. Please ensure that you have the appropriate Function Policy on this function. You can do this by running the following command from account 123456789012:aws lambda add-permission, gefolgt von einer AWS CLI-Befehlszeichenfolge.

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

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

  12. Wenn Sie die aktualisierten Richtlinien für Ihre Funktion in der Lambda Konsole anzeigen möchten:

    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.