Créez, configurez et testez des plans d'utilisation à l'aide de la API passerelle CLI et REST API - APIPasserelle Amazon

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.

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:updateavec 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
  1. 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.

  2. Effectuez l’une des actions suivantes :

    1. Appelez usageplankey:createpour ajouter une API clé au plan d'utilisation. Spécifiez keyId et keyType 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.

    2. Appelez apikey:importpour 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 par keyname, 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'utilisation UsagePlan.

      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-keyen-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ête x-api-key ou si vous le définissez avec une clé incorrecte, vous obtenez une réponse 403 Forbidden. Toutefois, si vous n'avez pas configuré la méthode pour exiger une API clé, vous obtiendrez probablement une 200 OK réponse, que vous ayez correctement défini l'x-api-keyen-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.