Amazon API Gateway
Entwicklerhandbuch

TUTORIAL: Erstellen einer API Gateway-API mit kontoü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 Beispiel 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 Lambda eine kontoübergreifende API Gateway-Integration

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

So erstellen Sie die Beispiel-API

  1. Melden Sie sich bei der API Gateway-Konsole an.

  2. Wählen Sie Create API (API erstellen) auf derAPI GatewayAPIs-Startseite aus:

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

  4. Wählen Sie für Endpoint Type (Endpunkt-Typ) Edge optimized (Edge-optimiert) aus.

  5. 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 im Eingabefeld Name einen Namen für die Funktion ein.

    2. Wählen Sie aus der Dropdown-Liste Runtime (Laufzeit) eine unterstützte Laufzeit aus. In diesem Beispiel verwenden wir Node.js 8.10.

    3. Wählen Sie in der Dropdown-Liste Role (Rolle) die Optionen Choose an existing role (Eine vorhandene Rolle auswählen), Create new role from template(s) (Neue Rolle aus Vorlagen erstellen) oder Create a custom role (Eine benutzerdefinierte Rolle erstellen) aus. Befolgen Sie anschließend die Anweisungen für die Auswahl.

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

      In diesem Beispiel überspringen wir den Abschnitt Designer und fahren mit dem Abschnitt Function code fort.

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

  6. Kopieren Sie die Node.js-Funktionsimplementierung aus TUTORIAL: Erstellen einer Hello World-API mit Lambda-Proxy-Integration und fügen Sie sie ein.

  7. Wählen Sie aus dem Dropdown-Menü Runtime (Laufzeit) die Option Node.js 8.10 aus.

  8. Wählen Sie Save aus.

  9. 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 in der Lambda-Konsole 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. Klicken Sie im Bereich Designer auf das Schlüsselsymbol.

    Im Bereich Function policy (Funktionsrichtlinie) sollten Sie nun eine Allow-Richtlinie mit einer Condition-Klausel sehen, bei der AWS:SourceArn der ARN für die GET-Methode Ihrer API ist.