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.
Sie können den Nutzungsplan erst konfigurieren, nachdem Sie Folgendes erledigt haben: die Methoden einer ausgewählten API so eingerichtet haben, dass API-Schlüssel erforderlich sind, die API für eine Stufe bereitgestellt oder erneut bereitgestellt haben und einen oder mehrere API-Schlüssel erstellt oder importiert haben. Weitere Informationen finden Sie unter Einrichten von API-Schlüsseln mit der API Gateway-REST-API.
Verwenden Sie die folgenden Anweisungen, um einen Nutzungsplan mithilfe der API Gateway REST API zu konfigurieren, vorausgesetzt, Sie haben den, der dem Nutzungsplan hinzugefügt werden APIs soll, bereits erstellt.
Themen
Migrieren zu Standardnutzungsplänen
Bei der ersten Erstellung eines Nutzungsplans können vorhandene API-Stufen, denen bestimmte API-Schlüssel zugeordnet sind, durch den Aufruf von account:update mit folgendem Inhalt zum Nutzungsplan migriert werden:
{ "patchOperations" : [ { "op" : "add", "path" : "/features", "value" : "UsagePlans" } ] }
Weitere Informationen zum Migrieren von API-Stufen mit zugeordneten API-Schlüsseln finden Sie unter Migrieren zu Standardnutzungsplänen in der API Gateway-Konsole.
Erstellen eines Nutzungsplans
Im folgenden Verfahren wird das Erstellen eines Nutzungsplans beschrieben.
So erstellen Sie einen Nutzungsplan mit der REST-API
-
Rufen Sie
usageplan:create
auf, um einen Nutzungsplan zu erstellen. Geben Sie in der Nutzlast den Namen und die Beschreibung des Plans, die zugehörigen API-Stufen, Bandbreitenlimits und Kontingente an.Notieren Sie die ID des Nutzungsplans. Sie benötigen diese im nächsten Schritt.
-
Führen Sie eine der folgenden Aufgaben aus:
-
Rufen Sie
usageplankey:create
auf, um dem Nutzungsplan einen API-Schlüssel hinzuzufügen. Geben Sie in der NutzlastkeyId
undkeyType
an.Wenn dem Nutzungsplan weitere API-Schlüssel hinzugefügt werden sollen, wiederholen Sie den vorherigen Aufruf für jeden API-Schlüssel.
-
Rufen Sie
apikey:import
auf und fügen Sie einen oder mehrere API-Schlüssel direkt zum angegebenen Nutzungsplan hinzu. Die Anforderungsnutzlast sollte API-Schlüsselwerte, die zugehörige Nutzungsplan-ID, boolesche Flags (um anzugeben, dass die Schlüssel für den Nutzungsplan aktiviert sind) und ggf. Namen und Beschreibungen der API-Schlüssel enthalten.Im folgenden Beispiel der
apikey:import
-Anforderung werden drei API-Schlüssel (identifiziert durchkey
,name
unddescription
) zu einem Nutzungsplan (identifiziert durchusageplanIds
) hinzugefügt: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 mehreren Nutzungsplänen 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 mehreren Nutzungsplänen zugeordnet werden. Ein Nutzungsplan kann mehreren Stufen zugeordnet werden. Ein bestimmter API-Schlüssel kann jedoch nur einem Nutzungsplan für jede Stufe Ihres API zugeordnet werden.
-
Einen Nutzungsplan mithilfe der AWS CLI verwalten
In den folgenden update-usage-planBeispielen werden die Drosselungseinstellungen auf Methodenebene in einem Nutzungsplan hinzugefügt, entfernt oder geändert.
Anmerkung
Achten Sie darauf, us-east-1
auf den korrekten Regionswert für Ihre API zu ändern.
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 Drosseleinstellungen einer API auf Methodenebene zu entfernen:
aws apigateway --region us-east-1 update-usage-plan --usage-plan-id
planId
--patch-operations op="remove",path="/apiStages/apiId
:stage
/throttle ",value=""
Hier sehen Sie ein Beispiel unter Verwendung der 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 die PetStore API, die in erstellt wurdeTutorial: Erstellen einer REST-API durch Importieren eines Beispiels. Die API ist für die Verwendung des API-Schlüssels konfigurier Hiorr45VR...c4GJc
. In den folgenden Schritten wird das Testen eines Nutzungsplans beschrieben.
So testen Sie den Nutzungsplan
-
Führen Sie eine
GET
-Anforderung für die Ressource "Pets" (/pets
) mit den Abfrageparametern?type=...&page=...
der API (zum Beispielxbvxlpijch
) in einem Nutzungsplan aus: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 Anforderung an die Komponente
execute-api
von API Gateway übermitteln und den erforderlichen API-Schlüssel (zum BeispielHiorr45VR...c4GJc
) im entsprechendenx-api-key
-Header bereitstellen.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 allerdings nicht festgelegt haben, dass für die Methode ein API-Schlüssel erforderlich ist, erhalten Sie in jedem Fall die Antwort200 OK
– unabhängig davon, ob derx-api-key
-Header korrekt oder fehlerhaft eingerichtet wurde – und die Ablehnungs- und Kontingentlimits werden ignoriert.Im Falle, dass API Gateway aufgrund eines internen Fehlers die im Nutzungsplan enthaltenen Drosselungs- und Kontingentlimits für diese Anforderung nicht erzwingen kann, führt API Gateway die Anforderung ohne Berücksichtigung der Limits aus. Es wird jedoch die Fehlermeldung CloudWatch in
Usage Plan check failed due to an internal error
protokolliert. Diese gelegentlich auftretenden Fehler können Sie ignorieren.