Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Créez, configurez et testez des plans d'utilisation à l'aide de la API passerelle CLI et REST API
Avant de configurer un plan d'utilisation, vous devez déjà avoir effectué les opérations suivantes : configurer les méthodes d'une clé sélectionnée API pour exiger des API clés, les déployer ou les API redéployer sur une étape, et créer ou importer une ou plusieurs API clés. Pour plus d’informations, consultez Configuration des API clés à l'aide de la API passerelle REST API.
Pour configurer un plan d'utilisation à l'aide de la API passerelle RESTAPI, suivez les instructions suivantes, en supposant que vous avez déjà créé le plan d'utilisation APIs à ajouter au plan d'utilisation.
Rubriques
Migration vers les plans d'utilisation par défaut
Lorsque vous créez un plan d'utilisation pour la première fois, vous pouvez migrer les API étapes existantes associées aux API clés sélectionnées vers un plan d'utilisation en appelant account:update
avec le corps suivant :
{ "patchOperations" : [ { "op" : "add", "path" : "/features", "value" : "UsagePlans" } ] }
Pour plus d'informations sur les API étapes de migration associées aux API clés, voir Migrer vers les plans d'utilisation par défaut dans la console API Gateway.
Création d'un plan d'utilisation
La procédure suivante explique comment créer un plan d'utilisation.
Pour créer un plan d'utilisation avec le REST API
-
Appelez
usageplan:create
pour créer un plan d'utilisation. Dans la charge utile, spécifiez le nom et la description du plan, les API étapes associées, les limites de débit et les quotas.Notez l'identifiant de plan d'utilisation obtenu. Vous en avez besoin à l'étape suivante.
-
Effectuez l’une des actions suivantes :
-
Appelez
usageplankey:create
pour ajouter une API clé au plan d'utilisation. SpécifiezkeyId
etkeyType
dans la charge utile.Pour ajouter d'autres API clés au plan d'utilisation, répétez l'appel précédent, une API touche à la fois.
-
Appelez
apikey:import
pour ajouter une ou plusieurs API clés directement au plan d'utilisation spécifié. La charge utile de la demande doit contenir les valeurs API clés, l'identifiant du plan d'utilisation associé, les indicateurs booléens indiquant que les clés sont activées pour le plan d'utilisation et, éventuellement, les noms et descriptions des API clés.L'exemple de
apikey:import
demande suivant ajoute trois API clés (telles qu'identifiées parkey
name
, etdescription
) à un plan d'utilisation (tel qu'identifié parusageplanIds
) :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
En conséquence, trois ressources
UsagePlanKey
sont créées et ajoutées au plan d'utilisationUsagePlan
.Vous pouvez également ajouter API des clés à plusieurs plans d'utilisation de cette façon. Pour ce faire, remplacez la valeur de chaque colonne
usageplanIds
par une chaîne indiquée entre guillemets contenant les identifiants des plans d'utilisation sélectionnés, séparés par des virgules ("n371pt,m282qs"
ou'n371pt,m282qs'
).Note
Une API clé peut être associée à plusieurs plans d'utilisation. Un plan d'utilisation peut être associé à plusieurs étapes. Cependant, une API clé donnée ne peut être associée qu'à un seul plan d'utilisation pour chaque étape de votre programmeAPI.
-
Gérez un plan d'utilisation à l'aide du AWS CLI
Les exemples de code suivants montrent comment ajouter, supprimer ou modifier les paramètres de limitation au niveau méthode dans le cadre d'un plan d'utilisation en appelant la commande update-usage-plan
.
Note
Assurez-vous de passer us-east-1
à la valeur de région appropriée pour votreAPI.
Pour ajouter ou remplacer une limitation de taux afin de restreindre une ressource et une méthode en particulier :
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"
Pour ajouter ou remplacer une limitation du mode rafale afin de restreindre une ressource et une méthode en particulier :
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"
Pour supprimer les paramètres de limitation au niveau méthode pour une ressource et une méthode en particulier :
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=""
Pour supprimer tous les paramètres de régulation au niveau de la méthode pour un : API
aws apigateway --region us-east-1 update-usage-plan --usage-plan-id
<planId>
--patch-operations op="remove",path="/apiStages/<apiId>
:<stage>
/throttle ",value=""
Voici un exemple utilisant l'exemple Pet Store 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}}"'
Test des plans d'utilisation
À titre d'exemple, utilisons le PetStore API, qui a été créé dansTutoriel : Création d'une API REST par l'importation d'un exemple. Supposons que le API est configuré pour utiliser une API clé deHiorr45VR...c4GJc
. Les étapes suivantes expliquent comment tester un plan d'utilisation.
Pour tester votre plan d'utilisation
-
Faites une
GET
demande sur la ressource Pets (/pets
), avec les paramètres de?type=...&page=...
requête, de API (par exemple,xbvxlpijch
) dans un plan d'utilisation :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}
Note
Vous devez envoyer cette demande au
execute-api
composant de API Gateway et fournir la API clé requise (par exemple,Hiorr45VR...c4GJc
) dans l'x-api-key
en-tête requis.La réponse positive renvoie un code d'état
200 OK
et une charge utile qui contient les résultats demandés obtenus du backend. Si vous oubliez de définir l'en-têtex-api-key
ou si vous le définissez avec une clé incorrecte, vous obtenez une réponse403 Forbidden
. Toutefois, si vous n'avez pas configuré la méthode pour exiger une API clé, vous obtiendrez probablement une200 OK
réponse, que vous ayez correctement défini l'x-api-key
en-tête ou non, et les limites de limitation et de quota du plan d'utilisation seront contournées.Parfois, lorsqu'une erreur interne survient lorsque API Gateway n'est pas en mesure d'appliquer les limites de limitation du plan d'utilisation ou les quotas pour la demande, API Gateway répond à la demande sans appliquer les limites ou les quotas de limitation spécifiés dans le plan d'utilisation. Mais, il enregistre un message d'erreur
Usage Plan check failed due to an internal error
d'entrée CloudWatch. Vous pouvez ignorer ces erreurs occasionnelles.