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 Sie eine REST-API mit einer AWS Integration
In Tutorial: Erstellen Sie eine REST API mit einer Lambda-Proxyintegration und Tutorial: Erstellen Sie eine REST API Nicht-Proxy-Integration mit einer Lambda-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 Dienste wie Amazon SNS, Amazon S3, Amazon Kinesis und sogar verfügbar zu machen. AWS Lambda 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 Dienste unterstützen spezielle APIs, um ihre Funktionen verfügbar zu machen. 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 Ihrem Kunden ein konsistentes Anwendungsprotokoll für den Zugriff auf verschiedene AWS Dienste bietet.
In dieser exemplarischen Vorgehensweise erstellen wir eine API zur Bereitstellung von von Amazon SNS. Weitere Beispiele für die Integration einer API mit anderen AWS Diensten finden Sie unterAmazon API Gateway-Tutorials und -Workshops.
Im Gegensatz zur Lambda-Proxy-Integration gibt es keine entsprechende Proxy-Integration für andere AWS -Services. Daher wird 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 Anfragen 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 Sie eine REST API Nicht-Proxy-Integration mit einer Lambda-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 au Für die Verwendung von API Gateway einrichten.
-
Erstellen Sie eine neue API mit dem Namen
MyDemoAPI
. Weitere Informationen finden Sie unter Tutorial: Erstellen Sie eine REST API mit einer HTTP Nicht-Proxy-Integration. -
Stellen Sie die API mindestens einmal für eine Stufe mit dem Namen berei
. Weitere Informationen finden Sie unter Bereitstellen der API in Wählen Sie ein AWS Lambda Integrations-Tutorial.test
-
Führen Sie die restlichen Schritte in au Wählen Sie ein AWS Lambda Integrations-Tutorial.
-
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 Sie die AWS Service-Proxy-Ausführungsrolle
Einer IAM-Rolle müssen geeignete IAM-Richtlinien zugeordnet sein, damit die API Amazon-SNS-Aktionen aufrufen kann.
Um die AWS Service-Proxy-Ausführungsrolle zu erstellen
Melden Sie sich bei der an AWS Management Console 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 Dienst aus, wählen Sie dann API Gateway aus und wählen Sie Erlaubt API Gateway, Logs in Logs zu CloudWatch übertragen.
-
Klicken Sie auf Weiter und dann erneut auf Weiter.
-
Geben Sie für Role name (Rollenname) den Namen
APIGatewaySNSProxyPolicy
ein 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
AmazonSNSReadOnlyAccess
ein 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 es dem AWS Service-Proxy ermöglicht, mit dem AWS Dienst 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)
mydemoawsproxy
ein.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 es dem AWS Dienstproxy ermöglicht, mit dem AWS Dienst 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 den Ort aus AWS-Region, AWS-Region an dem Sie Ihr Amazon SNS 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
ListTopics
ein.Geben Sie für Ausführungsrolle den Rollen-ARN für
APIGatewaySNSProxyPolicy
ein.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 wirde 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)
test
ein.(Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.
Wählen Sie Deploy (Bereitstellen) aus.
Schritt 6: Testen der API
In diesem Schritt verlassen Sie die API Gateway Gateway-Konsole und verwenden Ihren AWS Service-Proxy, um mit dem Amazon SNS SNS-Service zu interagieren.
-
Klicken Sie im Hauptnavigationsbereich auf Stufe.
-
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
/mydemoawsproxy
an, 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, auf die sich ein AWS Service-Proxy stützt, funktionieren dieser AWS Dienstproxy und alle APIs, die darauf angewiesen sind, 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 ApiGateway und dann RollenaktionenAWSProxyExecRole, Rolle löschen aus. Wählen Sie bei Aufforderung Yes, Delete.
-
Wählen Sie im Bereich Details Policies.
-
Wählen Sie ApiGateway und dann Policy ActionsAWSProxyExecPolicy, Delete aus. Wählen Sie bei Aufforderung Löschen.
Sie haben das Ende dieser Anleitung erreicht. Ausführlichere Erläuterungen zum Erstellen einer API als AWS Dienstproxy finden Sie unter, Tutorial: Einen REST API als Amazon S3 S3-Proxy erstellenTutorial: Erstellen Sie einen Rechner REST API mit zwei AWS Serviceintegrationen und einer Lambda-Non-Proxy-Integration, oder. Tutorial: REST-API als Amazon Kinesis-Proxy erstellen