Crea, configura e testa i piani di utilizzo utilizzando API Gateway CLI e REST API - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea, configura e testa i piani di utilizzo utilizzando API Gateway CLI e REST API

Prima di configurare un piano di utilizzo, è necessario aver già eseguito le seguenti operazioni: impostato i metodi di una persona selezionata API per richiedere API le chiavi, distribuirla o ridistribuirla in una fase e creare o API importare una o più chiavi. API Per ulteriori informazioni, consulta Configura API le chiavi utilizzando il API Gateway REST API.

Per configurare un piano di utilizzo utilizzando il API Gateway RESTAPI, utilizza le seguenti istruzioni, supponendo che tu abbia già creato il piano di utilizzo da aggiungere APIs al piano di utilizzo.

Migrazione ai piani di utilizzo predefiniti

Quando si crea un piano di utilizzo per la prima volta, è possibile migrare API le fasi esistenti associate alle API chiavi selezionate verso un piano di utilizzo account:updatechiamando il seguente organismo:

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

Per ulteriori informazioni sulla migrazione delle API fasi associate alle API chiavi, consulta Migrazione ai piani di utilizzo predefiniti nella console Gateway. API

Creazione di un piano di utilizzo

La procedura seguente illustra come creare un piano di utilizzo.

Per creare un piano di utilizzo con REST API
  1. Invoca usageplan:create per creare un piano di utilizzo. Nel payload, specificate il nome e la descrizione del piano, le API fasi associate, i limiti di tariffa e le quote.

    Prendi nota dell'identificativo del piano di utilizzo. Questo valore servirà nella fase successiva.

  2. Esegui una di queste operazioni:

    1. Chiama usageplankey:createper aggiungere una API chiave al piano di utilizzo. Specifica keyId e keyType nel payload.

      Per aggiungere altre API chiavi al piano di utilizzo, ripeti la chiamata precedente, una API chiave alla volta.

    2. Chiama apikey:importper aggiungere una o più API chiavi direttamente al piano di utilizzo specificato. Il payload della richiesta deve contenere i valori API chiave, l'identificatore del piano di utilizzo associato, i flag booleani per indicare che le chiavi sono abilitate per il piano di utilizzo e, possibilmente, i nomi e le descrizioni delle API chiavi.

      Il seguente esempio di apikey:import richiesta aggiunge tre API chiavi (identificate da keyname, edescription) a un piano di utilizzo (come identificato da): 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

      Di conseguenza, vengono create tre risorse UsagePlanKey che vengono aggiunte a UsagePlan.

      In questo modo puoi anche aggiungere API chiavi a più di un piano di utilizzo. A questo scopo, modifica ogni valore della colonna usageplanIds in una stringa separata da virgole contenente gli identificatori del piano di utilizzo selezionato e racchiusa tra apici ("n371pt,m282qs" o 'n371pt,m282qs').

      Nota

      Una API chiave può essere associata a più di un piano di utilizzo. Un piano di utilizzo può essere associato a più fasi. Tuttavia, una determinata API chiave può essere associata a un solo piano di utilizzo per ogni fase del tuoAPI.

Gestisci un piano di utilizzo utilizzando il AWS CLI

I seguenti codici di esempio mostrano come aggiungere, rimuovere o modificare le impostazioni di throttling a livello di metodo in un piano di utilizzo invocando il comando update-usage-plan.

Nota

Assicurati di us-east-1 impostare il valore della regione appropriato per il tuoAPI.

Per aggiungere o sostituire un limite di tasso per il throttling di una risorsa e un metodo singoli:

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"

Per aggiungere o sostituire un limite di ottimizzazione per il throttling di una risorsa e un metodo singoli:

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"

Per rimuovere le impostazioni di throttling a livello di metodo per una risorsa e un metodo singoli:

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=""

Per rimuovere tutte le impostazioni di limitazione a livello di metodo per 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=""

Ecco un esempio di utilizzo dell'esempio di 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 dei piani di utilizzo

Ad esempio, utilizziamo il PetStore API, che è stato creato inTutorial: creazione di un'API REST mediante l'importazione di un esempio. Supponiamo che API sia configurato per utilizzare una API chiave diHiorr45VR...c4GJc. La procedura seguente illustra come testare un piano di utilizzo.

Per testare il piano di utilizzo
  • Effettua una GET richiesta sulla risorsa Pets (/pets), con i parametri di ?type=...&page=... query, di API (ad esempio,xbvxlpijch) in un piano di utilizzo:

    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}
    Nota

    È necessario inviare questa richiesta al execute-api componente di API Gateway e fornire la API chiave richiesta (ad esempio,Hiorr45VR...c4GJc) nell'x-api-keyintestazione richiesta.

    Se riesce, la risposta restituisce un codice di stato 200 OK e un payload contenente i risultati richiesti dal back-end: Se dimentichi di impostare l'intestazione x-api-key o se la imposti con una chiave sbagliata, ottieni una risposta 403 Forbidden. Tuttavia, se non hai configurato il metodo per richiedere una API chiave, probabilmente otterrai una 200 OK risposta indipendentemente dal fatto che tu abbia impostato l'x-api-keyintestazione correttamente o meno, e i limiti di limitazione e di quota del piano di utilizzo vengono aggirati.

    A volte, quando si verifica un errore interno che impedisce a API Gateway di applicare i limiti o le quote di limitazione del piano di utilizzo per la richiesta, API Gateway soddisfa la richiesta senza applicare i limiti o le quote di limitazione specificati nel piano di utilizzo. Tuttavia, registra un messaggio di errore. Usage Plan check failed due to an internal error CloudWatch Puoi ignorare questi errori occasionali.