Nutzungspläne mithilfe des API Gateways erstellen, konfigurieren CLI und testen REST API - APIAmazon-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.

Nutzungspläne mithilfe des API Gateways erstellen, konfigurieren CLI und testen REST API

Bevor Sie einen Nutzungsplan konfigurieren, müssen Sie bereits Folgendes getan haben: Methoden für einen ausgewählten API API Schlüssel einrichten, in einer Phase bereitgestellt oder erneut bereitgestellt und einen oder mehrere API Schlüssel erstellt oder importiert haben. API Weitere Informationen finden Sie unter Richten Sie API Schlüssel mithilfe des API Gateways ein REST API.

Gehen Sie wie folgt vor RESTAPI, um einen Nutzungsplan mithilfe des API Gateways zu konfigurieren. Gehen Sie dabei davon aus, dass Sie den Plan, der dem Nutzungsplan hinzugefügt werden APIs soll, bereits erstellt haben.

Migrieren zu Standardnutzungsplänen

Wenn Sie zum ersten Mal einen Nutzungsplan erstellen, können Sie vorhandene API Stufen, die ausgewählten API Schlüsseln zugeordnet sind, zu einem Nutzungsplan migrieren, indem Sie account:updateden folgenden Text aufrufen:

{ "patchOperations" : [ { "op" : "add", "path" : "/features", "value" : "UsagePlans" } ] }

Weitere Informationen zur Migration von API Phasen, die mit API Schlüsseln verknüpft sind, finden Sie unter Migration zu Standard-Nutzungsplänen in der API Gateway-Konsole.

Erstellen eines Nutzungsplans

Im folgenden Verfahren wird das Erstellen eines Nutzungsplans beschrieben.

Um einen Nutzungsplan mit dem zu erstellen REST API
  1. Rufen Sie usageplan:create auf, um einen Nutzungsplan zu erstellen. Geben Sie in der Payload den Namen und die Beschreibung des Plans, die zugehörigen API Stufen, Ratenbegrenzungen und Kontingente an.

    Notieren Sie die ID des Nutzungsplans. Sie benötigen diese im nächsten Schritt.

  2. Führen Sie eine der folgenden Aktionen aus:

    1. Rufen Sie usageplankey:createan, um dem Nutzungsplan einen API Schlüssel hinzuzufügen. Geben Sie in der Nutzlast keyId und keyType an.

      Um dem Nutzungsplan weitere API Schlüssel hinzuzufügen, wiederholen Sie den vorherigen Aufruf, einen API Schlüssel nach dem anderen.

    2. Rufen Sie apikey:importauf, um einen oder mehrere API Schlüssel direkt zum angegebenen Nutzungsplan hinzuzufügen. Die Payload der Anfrage sollte API Schlüsselwerte, die zugehörige Nutzungsplan-ID, die booleschen Flags, die angeben, dass die Schlüssel für den Nutzungsplan aktiviert sind, und möglicherweise die API Schlüsselnamen und -beschreibungen enthalten.

      Das folgende Beispiel für die apikey:import Anfrage fügt drei API Schlüssel (wie durch keyname, und identifiziertdescription) zu einem Nutzungsplan (wie identifiziert durch) hinzu: usageplanIds

      POST /apikeys?mode=import&format=csv&failonwarnings=fase HTTP/1.1 Host: apigateway.us-east-1.amazonaws.com Content-Type: text/csv Authorization: ... key,name, description, enabled, usageplanIds abcdef1234ghijklmnop8901234567, importedKey_1, firstone, tRuE, n371pt abcdef1234ghijklmnop0123456789, importedKey_2, secondone, TRUE, n371pt abcdef1234ghijklmnop9012345678, importedKey_3, , true, n371pt

      Als Ergebnis werden drei UsagePlanKey-Ressourcen erstellt und zu UsagePlan hinzugefügt.

      Auf diese Weise können Sie auch API Schlüssel zu mehr als einem Nutzungsplan hinzufügen. Dazu ändern Sie jeden usageplanIds-Spaltenwert in eine CSV-Zeichenfolge, die die ausgewählten Nutzungsplan-IDs in Anführungszeichen angibt ("n371pt,m282qs" oder 'n371pt,m282qs').

      Anmerkung

      Ein API Schlüssel kann mit mehr als einem Nutzungsplan verknüpft werden. Ein Nutzungsplan kann mehreren Stufen zugeordnet werden. Ein bestimmter API Schlüssel kann jedoch nur einem Nutzungsplan für jede Phase Ihres Abonnements zugeordnet werdenAPI.

Verwalten Sie einen Nutzungsplan mithilfe der AWS CLI

Die folgenden Codebeispiele zeigen, wie Sie die Drosselungseinstellungen auf Methodenebene in einem Nutzungsplan hinzufügen, entfernen oder modifizieren können, indem Sie den Befehl update-usage-plan aufrufen.

Anmerkung

Achten Sie darauf, auf us-east-1 den entsprechenden Regionswert für Ihre zu wechselnAPI.

Um ein Ratenlimit zur Drosselung einer individuellen Ressource und Methode hinzuzufügen oder zu ersetzen:

aws apigateway --region us-east-1 update-usage-plan --usage-plan-id <planId> --patch-operations op="replace",path="/apiStages/<apiId>:<stage>/throttle/<resourcePath>/<httpMethod>/rateLimit",value="0.1"

Um ein Burst-Limit zur Drosselung einer individuellen Ressource und Methode hinzuzufügen oder zu ersetzen:

aws apigateway --region us-east-1 update-usage-plan --usage-plan-id <planId> --patch-operations op="replace",path="/apiStages/<apiId>:<stage>/throttle/<resourcePath>/<httpMethod>/burstLimit",value="1"

Um die Drosseleinstellungen auf Methodenebene für eine individuelle Ressource und Methode zu entfernen:

aws apigateway --region us-east-1 update-usage-plan --usage-plan-id <planId> --patch-operations op="remove",path="/apiStages/<apiId>:<stage>/throttle/<resourcePath>/<httpMethod>",value=""

Um alle Drosselungseinstellungen auf Methodenebene für einen zu entfernen: API

aws apigateway --region us-east-1 update-usage-plan --usage-plan-id <planId> --patch-operations op="remove",path="/apiStages/<apiId>:<stage>/throttle ",value=""

Hier ist ein Beispiel mit dem Pet Store-Beispiel: API

aws apigateway --region us-east-1 update-usage-plan --usage-plan-id <planId> --patch-operations op="replace",path="/apiStages/<apiId>:<stage>/throttle",value='"{\"/pets/GET\":{\"rateLimit\":1.0,\"burstLimit\":1},\"//GET\":{\"rateLimit\":1.0,\"burstLimit\":1}}"'

Testen von Nutzungsplänen

Verwenden wir als Beispiel den PetStore API, der in erstellt wurdeTutorial: Erstellen einer REST-API durch Importieren eines Beispiels. Gehen Sie davon aus, API dass der für die Verwendung eines API Schlüssels von konfiguriert istHiorr45VR...c4GJc. In den folgenden Schritten wird das Testen eines Nutzungsplans beschrieben.

So testen Sie den Nutzungsplan
  • Stellen Sie eine GET Anfrage für die Pets-Ressource (/pets) mit den ?type=...&page=... Abfrageparametern von API (z. B.xbvxlpijch) in einem Nutzungsplan:

    GET /testStage/pets?type=dog&page=1 HTTP/1.1 x-api-key: Hiorr45VR...c4GJc Content-Type: application/x-www-form-urlencoded Host: xbvxlpijch.execute-api.ap-southeast-1.amazonaws.com X-Amz-Date: 20160803T001845Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160803/ap-southeast-1/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-api-key, Signature={sigv4_hash}
    Anmerkung

    Sie müssen diese Anfrage an die execute-api API Gateway-Komponente senden und den erforderlichen API Schlüssel (z. B.Hiorr45VR...c4GJc) im erforderlichen x-api-key Header angeben.

    Bei einer erfolgreichen Antwort wird der Statuscode 200 OK sowie eine Nutzlast mit den angeforderten Ergebnissen aus dem Backend zurückgegeben. Falls Sie den x-api-key-Header nicht oder mit einem falschen Schlüssel gesetzt haben, erhalten Sie als Antwort die Meldung 403 Forbidden. Wenn Sie die Methode jedoch nicht so konfiguriert haben, dass ein API Schlüssel erforderlich ist, werden Sie wahrscheinlich eine 200 OK Antwort erhalten, unabhängig davon, ob Sie den x-api-key Header richtig gesetzt haben oder nicht, und die Drosselungs- und Kontingentgrenzen des Nutzungsplans wurden umgangen.

    Gelegentlich, wenn ein interner Fehler auftritt, bei dem API Gateway die Beschränkungen oder Kontingente des Nutzungsplans für die Anfrage nicht durchsetzen kann, bedient API Gateway die Anfrage, ohne die im Nutzungsplan angegebenen Drosselungsgrenzen oder Kontingente anzuwenden. Es protokolliert jedoch eine Fehlermeldung von in. Usage Plan check failed due to an internal error CloudWatch Diese gelegentlich auftretenden Fehler können Sie ignorieren.