Tutorial: Erstellen Sie eine REST-API mit einer AWS Integration - 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: 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 mit einer Lambda-Integration ohne Proxy 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 mit einer Lambda-Integration ohne Proxy. Wenn Sie diese Anleitung noch nicht ausgeführt haben, sollen Sie dies zuerst nachholen.

Voraussetzungen

Führen Sie die folgenden Schritte aus, bevor Sie mit der schrittweisen Anleitung beginnen:

  1. Führen Sie die Schritte unter au Voraussetzungen für die ersten Schritte mit API Gateway.

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

  3. Stellen Sie die API mindestens einmal für eine Stufe mit dem Namen berei test. Weitere Informationen finden Sie unter Bereitstellen der API in Wählen Sie ein AWS Lambda Integrations-Tutorial.

  4. Führen Sie die restlichen Schritte in au Wählen Sie ein AWS Lambda Integrations-Tutorial.

  5. 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
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie Roles.

  3. Wählen Sie Rolle erstellen aus.

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

  5. Klicken Sie auf Weiter und dann erneut auf Weiter.

  6. Geben Sie für Role name (Rollenname) den Namen APIGatewaySNSProxyPolicy ein und klicken Sie auf Create role (Rolle erstellen).

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

  8. Wählen Sie für die ausgewählte Rolle die Registerkarte Berechtigungen hinzufügen aus.

  9. Wählen Sie in der Dropdown-Liste Berechtigungen anfügen aus.

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

  11. 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
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wählen Sie Ihre API aus.

  3. Wählen Sie die Stammressource / aus. Sie erkennen sie an dem einzelnen Schrägstrich (/), und klicken Sie dann auf Ressource erstellen.

  4. Die Proxy-Ressource bleibt ausgeschaltet.

  5. Ressourcenpfad wird als / beibehalten.

  6. Geben Sie für Resource name (Ressourcenname) mydemoawsproxy ein.

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

  8. 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
  1. Wählen Sie die /mydemoawsproxy-Ressource aus und klicken Sie dann auf Methode erstellen.

  2. Wählen Sie als Methodentyp GET aus.

  3. Für Integrationstyp wählen Sie AWS-Service aus.

  4. Wählen Sie für den Ort aus AWS-Region, AWS-Region an dem Sie Ihr Amazon SNS SNS-Thema erstellt haben.

  5. Wählen Sie für AWS-Service Amazon SNS aus.

  6. Lassen Sie die AWS -Subdomain leer.

  7. Für HTTP-Methode wählen Sie GET aus.

  8. Wählen Sie für Aktionstyp die Option Aktionsnamen verwenden aus.

  9. Für Aktionsname geben Sie ListTopics ein.

  10. Geben Sie für Ausführungsrolle den Rollen-ARN für APIGatewaySNSProxyPolicy ein.

  11. 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
  1. Wählen Sie die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte anzuzeigen.

  2. 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
  1. Klicken Sie auf Deploy API.

  2. Wählen Sie für Stufe die Option Neue Stufe aus.

  3. Geben Sie für Stage name (Stufenname) test ein.

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

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

  1. Klicken Sie im Hauptnavigationsbereich auf Stufe.

  2. 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
  3. Geben Sie die URL in das Adressfeld einer neuen Registerkarte im Browser ein.

  4. Fügen Sie /mydemoawsproxy an, sodass die URL wie folgt aussieht:

    https://my-api-id.execute-api.region-id.amazonaws.com/test/mydemoawsproxy

    Rufen 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:
  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Bereich Details die Option Roles aus.

  3. Wählen Sie ApiGateway und dann RollenaktionenAWSProxyExecRole, Rolle löschen aus. Wählen Sie bei Aufforderung Yes, Delete.

  4. Wählen Sie im Bereich Details Policies.

  5. 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: Erstellen Sie eine REST-API als Amazon S3 S3-ProxyTutorial: 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