Impostazioni della cache per REST APIs in API Gateway - 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à.

Impostazioni della cache per REST APIs in API Gateway

È possibile abilitare la API memorizzazione nella cache in API Gateway per memorizzare nella cache le risposte dell'endpoint. Con la memorizzazione nella cache, puoi ridurre il numero di chiamate effettuate all'endpoint e anche migliorare la latenza delle richieste al tuo. API

Quando abiliti la memorizzazione nella cache per una fase, API Gateway memorizza nella cache le risposte dall'endpoint per un periodo specificato time-to-live ()TTL, in secondi. APIGateway risponde quindi alla richiesta cercando la risposta dell'endpoint dalla cache invece di effettuare una richiesta all'endpoint. Il TTL valore predefinito per la API memorizzazione nella cache è 300 secondi. Il TTL valore massimo è 3600 secondi. TTL=0 significa che la memorizzazione nella cache è disabilitata.

Nota

Il caching è il miglior tentativo. Puoi utilizzare le CacheMissCount metriche CacheHitCount e di Amazon CloudWatch per monitorare le richieste che API Gateway fornisce dalla API cache.

La dimensione massima di una risposta che può essere memorizzata nella cache è 1048576 byte. la crittografia dei dati della cache può aumentare le dimensioni della risposta quando viene memorizzata nella cache.

Questo è un servizio HIPAA idoneo. Per ulteriori informazioni sull' AWS U.S. Health Insurance Portability and Accountability Act del 1996 (HIPAA) e sull'utilizzo AWS dei servizi per elaborare, archiviare e trasmettere informazioni sanitarie protette (PHI), vedere HIPAA Panoramica.

Importante

Quando abiliti il caching per una fase, il sistema di caching sarà abilitato per impostazione predefinita solo per i metodi GET. Questo aiuta a garantire la sicurezza e la disponibilità del tuo. API Puoi abilitare il caching per altri metodi ignorando le impostazioni del metodo.

Importante

Per il caching viene applicato un addebito orario in base alle dimensioni della cache selezionata. La memorizzazione nella cache non è idonea per il livello AWS gratuito. Per ulteriori informazioni, consulta APIGateway Pricing.

Abilita la memorizzazione nella cache di Amazon API Gateway

In API Gateway, puoi abilitare la memorizzazione nella cache per una fase specifica.

Quando abiliti il caching, devi scegliere una capacità di cache. In generale, una capacità più ampia garantisce prestazioni migliori ma comporta costi più alti. Per le dimensioni di cache supportate, vedere cacheClusterSizenel APIGateway API Reference.

APIGateway consente la memorizzazione nella cache creando un'istanza di cache dedicata. Questo processo può richiedere fino a 4 minuti.

APIGateway modifica la capacità di memorizzazione nella cache rimuovendo l'istanza di cache esistente e creandone una nuova con una capacità modificata. Tutti i dati esistenti memorizzati nella cache vengono eliminati.

Nota

La capacità della cache influisce sulla CPU memoria e sulla larghezza di banda di rete dell'istanza di cache. Di conseguenza, la capacità della cache può influire sulle prestazioni della cache.

APIGateway consiglia di eseguire un test di carico di 10 minuti per verificare che la capacità della cache sia adeguata al carico di lavoro. Assicurati che il traffico durante il test di carico rispecchi il traffico di produzione. Ad esempio, includi un aumento graduale, un traffico costante e picchi di traffico. Il test di caricamento deve includere risposte che possono essere fornite dalla cache, nonché risposte univoche che aggiungono elementi alla cache. Durante il test di caricamento, monitora i parametri di latenza, 4xx, 5xx, hit della cache e mancato riscontro nella cache. In base a questi parametri, regola la capacità della cache a seconda delle esigenze. Per ulteriori informazioni sui test di carico, vedi Come faccio a selezionare la migliore capacità della cache del API Gateway per evitare di raggiungere un limite di velocità? .

Nella console API Gateway, è possibile configurare la memorizzazione nella cache nella pagina Stages. Si effettua il provisioning della cache dello stage e si specifica un'impostazione predefinita della cache a livello di metodo. Se attivate la cache a livello di metodo predefinita, la memorizzazione nella cache a livello di metodo viene attivata per tutti i GET metodi sullo stage, a meno che tale metodo non disponga di un'alternativa al metodo. Tutti GET i metodi aggiuntivi distribuiti sullo stage avranno una cache a livello di metodo. Per configurare l'impostazione della memorizzazione nella cache a livello di metodo per metodi specifici dello stage, puoi utilizzare le sostituzioni dei metodi. Per ulteriori informazioni sulle sostituzioni dei metodi, consulta. Sostituisci la memorizzazione nella cache a livello di fase di API Gateway per la memorizzazione nella cache a livello di metodo

Per configurare la API memorizzazione nella cache per una determinata fase:
  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegliere Stages (Fasi).

  3. Nell'elenco delle tappe diAPI, scegli la fase.

  4. Nella sezione Dettagli fase scegli Modifica.

  5. In Impostazioni aggiuntive, per Impostazioni cache, attiva Provision API cache.

    Questo fornisce un cluster di cache per il tuo stage.

  6. Per attivare la memorizzazione nella cache per lo stage, attiva la memorizzazione nella cache a livello di metodo predefinito.

    Questo attiva la memorizzazione nella cache a livello di metodo per tutti i metodi sullo stage. GET Tutti GET i metodi aggiuntivi distribuiti in questa fase avranno una cache a livello di metodo.

    Nota

    Se si dispone di un'impostazione esistente per una cache a livello di metodo, la modifica dell'impostazione predefinita della memorizzazione nella cache a livello di metodo non influisce sull'impostazione esistente.

    Attiva la cache di provisioning e la API cache predefinita a livello di metodo.
  7. Scegli Save changes (Salva modifiche).

Nota

Il completamento della creazione o dell'eliminazione di una cache richiede circa 4 minuti per API il completamento di Gateway.

Quando viene creata una cache, il valore del cluster di cache cambia da Create in progress aActive. Una volta completata l'eliminazione della cache, il valore del cluster di cache cambia da Delete in progress aInactive.

Quando attivate la memorizzazione nella cache a livello di metodo per tutti i metodi sullo stage, il valore predefinito di memorizzazione nella cache a livello di metodo cambia in. Active Se disattivate la memorizzazione nella cache a livello di metodo per tutti i metodi sullo stage, il valore di memorizzazione nella cache a livello di metodo predefinito cambia in. Inactive Se disponete di un'impostazione esistente per una cache a livello di metodo, la modifica dello stato della cache non influisce su tale impostazione.

Se abiliti il caching in Impostazioni cache di una fase, vengono memorizzati nella cache solo i metodi GET. Per garantire la sicurezza e la disponibilità del tuoAPI, ti consigliamo di non modificare questa impostazione. Tuttavia, puoi abilitare il caching per altri metodi ignorando le impostazioni del metodo.

Puoi verificare che il caching funzioni come previsto in due modi:

  • Controlla le CloudWatch metriche di CacheHitCounte CacheMissCountper te e per StageAPI.

  • Inserisci un timestamp nella risposta.

Nota

Non dovreste usare l'X-Cacheintestazione della CloudFront risposta per determinare se la vostra istanza di cache API Gateway API è servita.

Sostituisci la memorizzazione nella cache a livello di fase di API Gateway per la memorizzazione nella cache a livello di metodo

È possibile sovrascrivere le impostazioni della cache a livello di fase attivando o disattivando la memorizzazione nella cache per un metodo specifico. È inoltre possibile modificare il TTL periodo o attivare o disattivare la crittografia per le risposte memorizzate nella cache.

Se modificate l'impostazione predefinita della memorizzazione nella cache a livello di metodo nei dettagli dello stage, ciò non influirà sulle impostazioni della cache a livello di metodo che hanno delle sostituzioni.

Se prevedi che nelle risposte di un metodo che si sta memorizzando nella cache siano inclusi dati sensibili, in Cache Settings (Impostazioni cache), scegliere Encrypt cache data (Crittografa dati cache).

Per configurare la memorizzazione nella API cache per singoli metodi utilizzando la console:
  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegli il. API

  3. Scegliere Stages (Fasi).

  4. Nell'elenco Fasi diAPI, espandi lo stage e scegli un metodo inAPI.

  5. Nella sezione Sostituzioni del metodo, scegli Modifica.

  6. Nella sezione Impostazioni metodo, attiva o disattiva Abilita cache metodo o personalizza le altre opzioni desiderate.

    Nota

    La memorizzazione nella cache non è attiva finché non si esegue il provisioning di un cluster di cache per lo stage.

  7. Seleziona Salva.

Uso dei parametri di metodo o di integrazione come chiavi di cache per indicizzare le risposte memorizzate nella cache

È possibile utilizzare un metodo o un parametro di integrazione come chiavi di cache per indicizzare le risposte memorizzate nella cache. Ciò include intestazioni, URL percorsi o stringhe di query personalizzati. È possibile specificare alcuni o tutti questi parametri come chiave della cache, ma è necessario specificare almeno un valore. Se si dispone di una chiave di cache, API Gateway memorizza nella cache le risposte di ciascun valore di chiave separatamente, anche quando la chiave della cache non è presente.

Nota

Le chiavi di cache sono necessarie per la configurazione del caching su una risorsa.

Ad esempio, supponiamo di avere una richiesta espressa nel seguente formato:

GET /users?type=... HTTP/1.1 host: example.com ...

In questa richiesta type può assumere il valore admin o regular. Se includi il parametro type come parte della chiave di cache, le risposte da GET /users?type=admin vengono memorizzate nella cache separatamente da quelle di GET /users?type=regular.

Quando una richiesta di metodo o di integrazione usa più di un parametro, puoi scegliere di includere alcuni di essi o tutti per creare la chiave di cache. Ad esempio, puoi includere solo il type parametro nella chiave della cache per la seguente richiesta, effettuata nell'ordine elencato entro un TTL periodo:

GET /users?type=admin&department=A HTTP/1.1 host: example.com ...

La risposta da questa richiesta viene memorizzata nella cache e utilizzata per servire la seguente richiesta:

GET /users?type=admin&department=B HTTP/1.1 host: example.com ...

Per includere un metodo o un parametro di richiesta di integrazione come parte di una chiave di cache nella console API Gateway, seleziona Caching dopo aver aggiunto il parametro.

Inclusione dei parametri di metodo o di integrazione come chiavi di cache per indicizzare la risposta memorizzata nella cache

Svuota la cache dello API stage in Gateway API

Quando la API memorizzazione nella cache è abilitata, puoi svuotare la cache dello API stage per garantire che i API clienti ricevano le risposte più recenti dagli endpoint di integrazione.

Per svuotare la cache API dello stage, scegli il menu delle azioni dello stage, quindi seleziona Flush stage cache.

Nota

Una volta scaricata la cache, le risposte vengono servite dall'endpoint di integrazione fino a quando la cache non viene creata nuovamente. Durante questo periodo, il numero di richieste inviate all'endpoint di integrazione potrebbe aumentare. Ciò potrebbe aumentare temporaneamente la latenza complessiva del tuo. API

Invalidare una voce della cache del Gateway API

Un vostro client API può invalidare una voce di cache esistente e ricaricarla dall'endpoint di integrazione per singole richieste. Il client deve inviare una richiesta contenente l'intestazione Cache-Control: max-age=0. Il client riceve la risposta direttamente dall'endpoint di integrazione anziché dalla cache, a condizione che il client sia autorizzato a eseguire questa operazione. In questo modo, la voce di cache esistente viene sostituita con la nuova risposta recuperata dall'endpoint di integrazione.

Per concedere l'autorizzazione a un client, allega una policy del seguente formato a un ruolo di IAM esecuzione per l'utente.

Nota

La convalida della cache tra più account non è supportata.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:InvalidateCache" ], "Resource": [ "arn:aws:execute-api:region:account-id:api-id/stage-name/GET/resource-path-specifier" ] } ] }

Questa politica consente al servizio di esecuzione API Gateway di invalidare la cache per le richieste sulla risorsa (o sulle risorse) specificate. Per specificare un gruppo di risorse mirate, utilizzate un carattere jolly (*) per account-id e altre voci nel ARN valore di. api-id Resource Per ulteriori informazioni su come impostare le autorizzazioni per il servizio di esecuzione API Gateway, vedere. Controlla l'accesso a un REST API con IAM autorizzazioni

Se non imponi una InvalidateCache policy (o scegli la casella di controllo Richiedi autorizzazione nella console), qualsiasi client può invalidare la cache. API Se la maggior parte o tutti i client invalidano la API cache, ciò potrebbe aumentare significativamente la latenza della cache. API

Quando la policy è attiva, il caching è abilitato e l'autorizzazione è richiesta.

È possibile controllare il modo in cui vengono gestite le richieste non autorizzate scegliendo un'opzione da Gestione delle richieste non autorizzate nella console Gateway. API

Configurazione dell'invalidazione della cache

Le tre opzioni risultano nei comportamenti seguenti:

  • Fail the request with 403 status code (Richiesta non riuscita con codice stato 403): restituisce una risposta di tipo non autorizzato 403.

    Per impostare questa opzione utilizzando, usa. API FAIL_WITH_403

  • Ignore cache control header; Add a warning in response header (Ignora intestazione di controllo cache; aggiungi avviso in intestazione risposta): elabora la richiesta e aggiunge un'intestazione di avviso nella risposta.

    Per impostare questa opzione usandoAPI, usaSUCCEED_WITH_RESPONSE_HEADER.

  • Ignore cache control header (Ignora intestazione di controllo cache): elabora la richiesta senza aggiungere un'intestazione di avviso nella risposta.

    Per impostare questa opzione usandoAPI, usaSUCCEED_WITHOUT_RESPONSE_HEADER.