Tutorial: API Gateway REST-API mit kontenübergreifender Lambda-Proxy-Integration erstellen - 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.

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

Sie können jetzt eine - AWS Lambda Funktion aus einem anderen AWS Konto als Ihr 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.

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

So erstellen Sie eine 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 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. Geben Sie in API name (API-Name) CrossAccountLambdaAPI ein.

  4. (Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.

  5. Lassen Sie die Einstellung für API-Endpunkttyp bei Regional.

  6. Wählen Sie Create API (API erstellen) aus.

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. Geben Sie die Node.js-Funktionsimplementierung aus Tutorial: Hello World REST-API mit Lambda-Proxy-Integration erstellen ein.

  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.

Nachdem Sie eine API erstellt haben, können Sie nun eine Ressource erstellen. In der Regel werden API-Ressourcen in einer Ressourcenstruktur organisiert, die der Anwendungslogik entspricht. Für dieses Beispiel erstellen Sie eine /helloworld-Ressource.

Erstellen Sie eine Ressource
  1. Wählen Sie die /-Ressource aus und klicken Sie dann auf Ressource erstellen.

  2. Die Proxy-Ressource bleibt ausgeschaltet.

  3. Ressourcenpfad wird als / beibehalten.

  4. Geben Sie für Resource name (Ressourcenname) helloworld ein.

  5. CORS (Cross Origin Resource Sharing) bleibt ausgeschaltet.

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

Nachdem Sie eine Ressource erstellt haben, können Sie nun eine GET-Methode erstellen. Die GET-Methode wird in einem anderen Konto in der Lambda-Funktion integriert.

So erstellen Sie eine GET-Methode
  1. Wählen Sie die /helloworld-Ressource aus und klicken Sie dann auf Methode erstellen.

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

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

  4. Schalten Sie die Lambda-Proxy-Integration ein.

  5. Geben Sie für Lambda-Funktion den vollständigen ARN Ihrer Lambda-Funktion aus Schritt 1 ein.

    Sie finden den ARN für Ihre Funktion in der Lambda-Konsole in der oberen rechten Ecke des Konsolenfensters.

  6. Wenn Sie den ARN eingeben, wird eine aws lambda add-permission-Befehlszeichenfolge angezeigt. Diese Richtlinie gewährt Ihrem ersten Konto Zugriff auf die Lambda-Funktion in Ihrem zweiten Konto. Kopieren Sie die aws lambda add-permission Befehlszeichenfolge und fügen Sie sie in ein - AWS CLI Fenster ein, das für Ihr zweites Konto konfiguriert ist.

  7. Wählen Sie Methode erstellen aus.

Die aktualisierte Richtlinie für Ihre Funktion wird in der Lambda-Konsole angezeigt.

(Optional) Anzeige Ihrer aktualisierten Richtlinie
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die - AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/.

  2. Wählen Sie Ihre Lambda-Funktion aus.

  3. 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.