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: Erstellen einer REST-API mit einer AWS-Integration
In Tutorial: Erstellen einer REST-API mit einer Lambda-Proxy-Integration und Tutorial: Erstellen einer REST-API mit einer Lambda-Nicht-Proxy-Integration wird beschrieben, wie eine API Gateway-API erstellt wird, um die integrierte Lambda-Funktion zu bereitzustellen. Darüber hinaus können Sie eine API-Gateway-API erstellen, um andere AWS-Services wie Amazon SNS, Amazon S3, Amazon Kinesis und sogar AWS Lambda bereitzustellen. Dies wird durch die AWS-Integration ermöglicht. Die Lambda-Integration oder die Lambda-Proxy-Integration ist ein Sonderfall, bei dem der Aufruf der Lambda-Funktion über die API Gateway-API bereitgestellt wird.
Alle AWS-Services unterstützen dedizierte APIs zur Veröffentlichung ihrer Funktionen. Die Anwendungsprotokolle oder Programmierschnittstellen sind jedoch wahrscheinlich von Service zu Service unterschiedlich. Eine API-Gateway-API mit der AWS-Integration hat den Vorteil, dass Sie ein konsistentes Anwendungsprotokoll für den Zugriff auf andere AWS-Services durch den Client bereitstellt.
In dieser exemplarischen Vorgehensweise erstellen wir eine API zur Bereitstellung von von Amazon SNS. Weitere Beispiele der Integration einer API in andere AWS-Services finden Sie unter Amazon API Gateway-Tutorials und -Workshops.
Im Gegensatz zur Lambda-Proxy-Integration gibt es keine entsprechende Proxy-Integration für andere AWS-Services. Daher ist eine API-Methode mit einer einzigen AWS-Aktion integriert. Für mehr Flexibilität, ähnlich wie bei der Proxy-Integration, können Sie eine Lambda-Proxy-Integration einrichten. Die Lambda-Funktion analysiert und verarbeitet dann Anforderungen für andere AWS-Aktionen.
API Gateway versucht es nicht erneut, wenn der Endpunkt das Zeitlimit überschreitet. Der API-Aufrufer muss eine Logik für Wiederholversuche implementieren, um mit Endpunkt-Timeouts umzugehen.
Diese schrittweise Anleitung basiert auf den Anweisungen und Konzepten in Tutorial: Erstellen einer REST-API mit einer Lambda-Nicht-Proxy-Integration. Wenn Sie diese Anleitung noch nicht ausgeführt haben, sollen Sie dies zuerst nachholen.
Themen
Voraussetzungen
Führen Sie die folgenden Schritte aus, bevor Sie mit der schrittweisen Anleitung beginnen:
-
Führen Sie die Schritte unter Einrichten der API Gateway aus.
-
Erstellen Sie eine neue API mit dem Namen
MyDemoAPI. Weitere Informationen finden Sie unter Tutorial: REST-API mit HTTP-API ohne Proxy-Integration erstellen. -
Stellen Sie die API mindestens einmal für eine Stufe mit dem Namen
bereit. Weitere Informationen finden Sie unter Bereitstellen der API in Wählen Sie ein AWS Lambda -Integrations-Tutorial aus.test -
Führen Sie die restlichen Schritte in Wählen Sie ein AWS Lambda -Integrations-Tutorial aus aus.
-
Erstellen Sie mindestens ein Thema in Amazon Simple Notification Service (Amazon SNS). Sie verwenden die bereitgestellte API, um eine Liste der Themen in Amazon SNS abzurufen, die mit Ihrem AWS-Konto verknüpft sind. Wie Sie ein Thema in Amazon SNS erstellen, erfahren Sie unter Thema erstellen. (Sie müssen nicht die in Schritt 5 erwähnte Thema-ARN kopieren.)
Schritt 1: Erstellen der Ausführungsrolle für den AWS-Service-Proxy
Einer IAM-Rolle müssen geeignete IAM-Richtlinien zugeordnet sein, damit die API Amazon-SNS-Aktionen aufrufen kann. In dieser Übung erstellen Sie eine neue IAM-Rolle.
Erstellen der Ausführungsrolle für den AWS-Service-Proxy
Melden Sie sich bei der AWS Management Console an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie Roles.
-
Wählen Sie Rolle erstellen aus.
-
Wählen Sie unter Typ der vertrauenswürdigen Entität auswählen die Option AWS-Service und anschließend API Gateway und Erlaubt API Gateway, Protokolle an CloudWatch Logs zu senden aus.
-
Klicken Sie auf Weiter und dann erneut auf Weiter.
-
Geben Sie für Role name (Rollenname) den Namen
APIGatewaySNSProxyPolicyein und klicken Sie auf Create role (Rolle erstellen). -
Wählen Sie in der Liste Roles die Rolle aus, die Sie gerade erstellt haben. Möglicherweise müssen Sie scrollen oder die Rolle über die Suchleiste finden.
-
Wählen Sie für die ausgewählte Rolle die Registerkarte Berechtigungen hinzufügen aus.
-
Wählen Sie in der Dropdown-Liste Berechtigungen anfügen aus.
-
Geben Sie im Suchfeld
AmazonSNSReadOnlyAccessein und wählen Sie Berechtigungen hinzufügen aus.Anmerkung
Dieses Tutorial verwendet der Einfachheit halber eine verwaltete Richtlinie. Als Best Practice sollten Sie Ihre eigene IAM-Richtlinie erstellen, um die erforderlichen Mindestberechtigungen zu gewähren.
-
Notieren Sie sich den neu erstellten Rollen-ARN, Sie werden ihn später brauchen.
Schritt 2: Erstellen der Ressource
In diesem Schritt erstellen Sie eine Ressource, die dem AWS-Service-Proxy ermöglicht, mit dem AWS-Service zu interagieren.
So erstellen Sie die Ressource
Melden Sie sich bei der API-Gateway-Konsole unter https://console.aws.amazon.com/apigateway
an. -
Wählen Sie Ihre API aus.
-
Wählen Sie die Stammressource / aus. Sie erkennen sie an dem einzelnen Schrägstrich (/), und klicken Sie dann auf Ressource erstellen.
Die Proxy-Ressource bleibt ausgeschaltet.
Ressourcenpfad wird als
/beibehalten.Geben Sie für Resource name (Ressourcenname)
mydemoawsproxyein.CORS (Cross Origin Resource Sharing) bleibt ausgeschaltet.
Wählen Sie Create Resource (Ressource erstellen) aus.
Schritt 3: Erstellen der GET-Methode
In diesem Schritt erstellen Sie eine GET-Methode, die dem AWS-Service-Proxy ermöglicht, mit dem AWS-Service zu interagieren.
So erstellen Sie die GET-Methode
-
Wählen Sie die /mydemoawsproxy-Ressource aus und klicken Sie dann auf Methode erstellen.
Wählen Sie als Methodentyp GET aus.
Für Integrationstyp wählen Sie AWS-Service aus.
Wählen Sie für AWS-Region die AWS-Region aus, wo Sie Ihr Amazon-SNS-Thema erstellt haben.
Wählen Sie für AWS-Service Amazon SNS aus.
Lassen Sie die AWS-Subdomain leer.
Für HTTP-Methode wählen Sie GET aus.
Wählen Sie für Aktionstyp die Option Aktionsnamen verwenden aus.
Für Aktionsname geben Sie
ListTopicsein.Geben Sie für Ausführungsrolle den Rollen-ARN für
APIGatewaySNSProxyPolicyein.Wählen Sie Methode erstellen aus.
Schritt 4: Angeben von Methodeneinstellungen und Testen der Methode
Sie können nun Ihre GET-Methode testen, um sicherzustellen, dass sie korrekt für die Auflistung Ihrer SNS-Themen eingerichtet wurde.
So testen Sie die GET-Methode
Wählen Sie die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte anzuzeigen.
Wählen Sie Test aus.
Im Ergebnis wird eine Antwort ähnlich der Folgenden angezeigt:
{ "ListTopicsResponse": { "ListTopicsResult": { "NextToken": null, "Topics": [ { "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-1" }, { "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-2" }, ... { "TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-N" } ] }, "ResponseMetadata": { "RequestId": "abc1de23-45fa-6789-b0c1-d2e345fa6b78" } } }
Schritt 5: Bereitstellen der API
In diesem Schritt stellen Sie die API bereit, damit Sie sie von außerhalb der API Gateway-Konsole aufrufen können.
So stellen Sie die API bereit
Klicken Sie auf Deploy API.
Wählen Sie für Stufe die Option Neue Stufe aus.
Geben Sie für Stage name (Stufenname)
testein.(Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.
Wählen Sie Bereitstellen.
Schritt 6: Testen der API
In diesem Schritt verlassen Sie die API-Gateway-Konsole und verwenden Ihren AWS-Service-Proxy, um mit dem Amazon-SNS-Service zu interagieren.
-
Klicken Sie im Hauptnavigationsbereich auf Stufen.
-
Wählen Sie unter Stufendetails das Kopiersymbol aus, um die Aufruf-URL Ihrer API zu kopieren.
Das sollte wie folgt aussehen:
https://my-api-id.execute-api.region-id.amazonaws.com/test -
Geben Sie die URL in das Adressfeld einer neuen Registerkarte im Browser ein.
-
Fügen Sie
/mydemoawsproxyan, sodass die URL wie folgt aussieht:https://my-api-id.execute-api.region-id.amazonaws.com/test/mydemoawsproxyRufen Sie die URL auf. Informationen wie die folgenden werden angezeigt:
{"ListTopicsResponse":{"ListTopicsResult":{"NextToken": null,"Topics":[{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-1"},{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-2"},...{"TopicArn": "arn:aws:sns:us-east-1:80398EXAMPLE:MySNSTopic-N}]},"ResponseMetadata":{"RequestId":"abc1de23-45fa-6789-b0c1-d2e345fa6b78}}}
Schritt 7: Bereinigen
Sie können die IAM-Ressourcen löschen, die der AWS-Service-Proxy benötigt, um zu funktionieren.
Warnung
Wenn Sie eine IAM-Ressource löschen, die ein AWS-Service-Proxy benötigt, funktionieren dieser AWS-Service-Proxy und alle abhängigen APIs nicht mehr. Das Löschen einer IAM-Ressource kann nicht rückgängig gemacht werden. Wenn Sie die IAM-Ressource wieder nutzen möchten, müssen Sie diese neu erstellen.
Löschen Sie die zugehörigen IAM-Ressourcen wie folgt:
Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im Bereich Details die Option Roles aus.
-
Wählen Sie APIGatewayAWSProxyExecRole aus. Wählen Sie dann Role Actions (Rollenaktionen) und Delete Role (Rolle löschen) aus. Wählen Sie bei Aufforderung Yes, Delete.
-
Wählen Sie im Bereich Details Policies.
-
Wählen Sie APIGatewayAWSProxyExecPolicy, und wählen Sie dann Policy actions (Richtlinienaktionen) und Delete (Löschen) aus. Wählen Sie bei Aufforderung Löschen.
Sie haben das Ende dieser Anleitung erreicht. Weitere detaillierte Erläuterungen zum Erstellen einer API als AWS-Service-Proxy finden Sie unter Tutorial: REST-API als AmazonS3-Proxy erstellen, Tutorial: Erstellen Sie eine Rechner-REST-API mit zwei AWS Serviceintegrationen und einer Lambda-Non-Proxy-Integration oder Tutorial: REST-API als Amazon Kinesis-Proxy erstellen.