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.
Themen
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:update
den 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
-
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.
-
Führen Sie eine der folgenden Aktionen aus:
-
Rufen Sie
usageplankey:create
an, um dem Nutzungsplan einen API Schlüssel hinzuzufügen. Geben Sie in der NutzlastkeyId
undkeyType
an.Um dem Nutzungsplan weitere API Schlüssel hinzuzufügen, wiederholen Sie den vorherigen Aufruf, einen API Schlüssel nach dem anderen.
-
Rufen Sie
apikey:import
auf, 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 durchkey
name
, 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 zuUsagePlan
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 erforderlichenx-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 denx-api-key
-Header nicht oder mit einem falschen Schlüssel gesetzt haben, erhalten Sie als Antwort die Meldung403 Forbidden
. Wenn Sie die Methode jedoch nicht so konfiguriert haben, dass ein API Schlüssel erforderlich ist, werden Sie wahrscheinlich eine200 OK
Antwort erhalten, unabhängig davon, ob Sie denx-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.