Criteri di memorizzazione nella cache in Gestione API

Questo argomento fornisce un riferimento per i seguenti criteri di Gestione API. Per informazioni sull'aggiunta e sulla configurazione dei criteri, vedere Criteri di Gestione API.

Criteri di memorizzazione nella cache

Recupera dalla cache

Usare il criterio cache-lookup per eseguire una ricerca nella cache e restituire una risposta valida memorizzata nella cache, se disponibile. Questo criterio può essere applicato nei casi in cui il contenuto della risposta rimane statico in un periodo di tempo. La memorizzazione delle risposte nella cache riduce la larghezza di banda e i requisiti di elaborazione imposti sul server Web back-end e riduce la latenza percepita dagli utenti delle API.

Nota

Questo criterio deve essere associato a un criterio Archivia nella cache corrispondente.

Istruzione del criterio

<cache-lookup vary-by-developer="true | false" vary-by-developer-groups="true | false" downstream-caching-type="none | private | public" must-revalidate="true | false" allow-private-response-caching="@(expression to evaluate)">  
  <vary-by-header>Accept</vary-by-header>  
  <!-- should be present in most cases -->  
  <vary-by-header>Accept-Charset</vary-by-header>  
  <!-- should be present in most cases -->  
  <vary-by-header>Authorization</vary-by-header>  
  <!-- should be present when allow-authorized-response-caching is "true"-->  
  <vary-by-header>header name</vary-by-header>  
  <!-- optional, can repeated several times -->  
  <vary-by-query-parameter>parameter name</vary-by-query-parameter>  
  <!-- optional, can repeated several times -->  
</cache-lookup>  

Esempi

Esempio

<policies>  
    <inbound>  
        <base />  
        <cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="none" must-revalidate="true">  
            <vary-by-query-parameter>version</vary-by-query-parameter>  
        </cache-lookup>           
    </inbound>  
    <outbound>  
        <cache-store duration="seconds" />  
        <base />          
    </outbound>  
</policies>  

Esempio con espressioni di criteri

Questo esempio mostra come per configurare la durata della memorizzazione nella cache di Gestione API corrispondente alla memorizzazione delle risposte nella cache del serivzio back-end, come specificato dalla direttiva Cache-Control del servizio in questione. Per una dimostrazione relativa alla configurazione e all'uso di questi criteri, vedere l' episodio 177 di Cloud Cover su altre funzionalità di Gestione API con Vlad Vinogradsky e passare direttamente al minuto 25:25.

<!-- The following cache policy snippets demonstrate how to control API Management reponse cache duration with Cache-Control headers sent by the backend service. -->  

<!-- Copy this snippet into the inbound section -->  
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >  
  <vary-by-header>Accept</vary-by-header>  
  <vary-by-header>Accept-Charset</vary-by-header>  
</cache-lookup>  

<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the deafult value of 5 min if none is found  -->  
<cache-store duration="@{  
    var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");  
    var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;  
    return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;  
  }"  
 />  

Per altre informazioni, vedere Espressioni di criteri e Variabile di contesto.

Elementi

Nome Descrizione Obbligatorio
cache-lookup Elemento radice.
vary-by-header Avviare la memorizzazione delle risposte nella cache per ogni valore dell'intestazione specificata, come ad esempio Accept, Accept-Charset, Accept-Encoding, Accept-Language, Authorization, Expect, From, Host e If-Match. No
vary-by-query-parameter Avvia risposte di memorizzazione nella cache per ogni valore dei parametri di query specificati. Immettere un singolo parametro o più parametri. Usare un punto e virgola (;) come separatore. Se non è specificato alcun nome, verranno usati tutti i parametri di query. No

Attributi

Nome Descrizione Obbligatorio Default
allow-private-response-caching Se impostato su true, consente la memorizzazione nella cache delle richieste contenenti un'intestazione di autorizzazione. No false
downstream-caching-type Questo attributo deve essere impostato su uno dei valori seguenti.

- none - Non è consentita la memorizzazione nella cache downstream.
- private - È consentita la memorizzazione nella cache downstream privata.
- public - È consentita la memorizzazione nella cache downstream privata e condivisa.
No nessuno
must-revalidate Quando è abilitata la memorizzazione nella cache downstream, questo attributo attiva o disattiva la direttiva di controllo di memorizzazione della cache must-revalidate nelle risposte del gateway. No true
vary-by-developer Impostare su true per memorizzare le risposte nella cache per ogni chiave sviluppatore. No false
vary-by-developer-groups Impostare su true per memorizzare le risposte nella cache per ogni ruolo utente. No false

Utilizzo

Questo criterio può essere utilizzato nelle sezioni e negli ambiti di criteri seguenti.

  • Sezioni del criterio: in ingresso

  • Ambiti del criterio: API, operazione, prodotto

Archivia nella cache

Il criterio cache-store memorizza nella cache le risposte in base alle impostazioni specificate per la cache. Questo criterio può essere applicato nei casi in cui il contenuto della risposta rimane statico in un periodo di tempo. La memorizzazione delle risposte nella cache riduce la larghezza di banda e i requisiti di elaborazione imposti sul server Web back-end e riduce la latenza percepita dagli utenti delle API.

Nota

Questo criterio deve essere associato a un criterio Recupera dalla cache corrispondente.

Istruzione del criterio

<cache-store duration="seconds" />  

Esempi

Esempio

<policies>  
    <inbound>  
        <base />  
          <cache-lookup vary-by-developer="true | false" vary-by-developer-groups="true | false" downstream-caching-type="none | private | public" must-revalidate="true | false">  
                <vary-by-query-parameter>parameter name</vary-by-query-parameter> <!-- optional, can repeated several times -->  
        </cache-lookup>  
    </inbound>  
    <outbound>  
        <base />  
            <cache-store duration="3600" />  
    </outbound>  
</policies>  

Esempio con espressioni di criteri

Questo esempio mostra come per configurare la durata della memorizzazione nella cache di Gestione API corrispondente alla memorizzazione delle risposte nella cache del serivzio back-end, come specificato dalla direttiva Cache-Control del servizio in questione. Per una dimostrazione relativa alla configurazione e all'uso di questi criteri, vedere l' episodio 177 di Cloud Cover su altre funzionalità di Gestione API con Vlad Vinogradsky e passare direttamente al minuto 25:25.

<!-- The following cache policy snippets demonstrate how to control API Management reponse cache duration with Cache-Control headers sent by the backend service. -->  

<!-- Copy this snippet into the inbound section -->  
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >  
  <vary-by-header>Accept</vary-by-header>  
  <vary-by-header>Accept-Charset</vary-by-header>  
</cache-lookup>  

<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the deafult value of 5 min if none is found  -->  
<cache-store duration="@{  
    var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");  
    var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;  
    return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;  
  }"  
 />  

Per altre informazioni, vedere Espressioni di criteri e Variabile di contesto.

Elementi

Nome Descrizione Obbligatorio
cache-store Elemento radice.

Attributi

Nome Descrizione Obbligatorio Default
duration Durata (TTL, Time-To-Live) delle voci memorizzate nella cache, in secondi. N/D

Utilizzo

Questo criterio può essere utilizzato nelle sezioni e negli ambiti di criteri seguenti.

  • Sezioni del criterio: in uscita

  • Ambiti del criterio: API, operazione, prodotto

Recupera valore dalla cache

Usare il criterio cache-lookup-value per eseguire la ricerca nella cache in base alla chiave e restituiscono un valore memorizzato nella cache. La chiave può avere un valore di stringa arbitrario e viene indicata in genere usando un'espressione di criteri.

Nota

Questo criterio deve essere associato a un criterio Archivia valore nella cache corrispondente.

Istruzione del criterio

<cache-lookup-value key="cache key value"   
    default-value="value to use if cache lookup resulted in a miss"   
    variable-name="name of a variable looked up value is assigned to" />  

Esempio

Per ulteriori informazioni ed esempi su questo criterio, vedere Memorizzazione nella cache personalizzata in Gestione API di Azure.

<cache-lookup-value  
    key="@("userprofile-" + context.Variables["enduserid"])"    
    variable-name="userprofile" />  

Elementi

Nome Descrizione Obbligatorio
cache-lookup-value Elemento radice.

Attributi

Nome Descrizione Obbligatorio Default
default-value Un valore che verrà assegnato alla variabile se la ricerca della chiave nella cache non produce risultati. Se questo attributo viene omesso, viene assegnato null. No null
key Valore della chiave della cache da usare nella ricerca. N/D
variable-name Nome della variabile di contesto a cui verrà assegnato il valore cercato, se la ricerca ha esito positivo. Se la ricerca non produce risultati, alla variabile sarà assegnato il valore dell'attributo default-value o null, se l'attributo default-value è omesso. N/D

Utilizzo

Questo criterio può essere utilizzato nelle sezioni e negli ambiti di criteri seguenti.

  • Sezioni del criterio: inbound, outbound, backend, on-error

  • Ambiti del criterio: global, API, operation, product

Archivia valore nella cache

cache-store-value esegue l'archiviazione nella cache in base alla chiave. La chiave può avere un valore di stringa arbitrario e viene indicata in genere usando un'espressione di criteri.

Nota

Questo criterio deve essere associato a un criterio Recupera valore dalla cache corrispondente.

Istruzione del criterio

<cache-store-value key="cache key value" value="value to cache" duration="seconds" />  

Esempio

Per ulteriori informazioni ed esempi su questo criterio, vedere Memorizzazione nella cache personalizzata in Gestione API di Azure.

<cache-store-value  
    key="@("userprofile-" + context.Variables["enduserid"])"  
    value="@((string)context.Variables["userprofile"])" duration="100000" />  

Elementi

Nome Descrizione Obbligatorio
cache-store-value Elemento radice.

Attributi

Nome Descrizione Obbligatorio Default
duration Il valore verrà memorizzato nella cache per il valore di durata specificato, espresso in secondi. N/D
key La chiave della cache in cui verrà archiviato il valore. N/D
value Il valore da memorizzare nella cache. N/D

Utilizzo

Questo criterio può essere utilizzato nelle sezioni e negli ambiti di criteri seguenti.

  • Sezioni del criterio: inbound, outbound, backend, on-error

  • Ambiti del criterio: global, API, operation, product

Rimuovi valore dalla cache

cache-remove-value elimina un elemento memorizzato nella cache identificato in base alla chiave. La chiave può avere un valore di stringa arbitrario e viene indicata in genere usando un'espressione di criteri.

Istruzione del criterio


<cache-remove-value key="cache key value"/>  

Esempio


<cache-remove-value key="@("userprofile-" + context.Variables["enduserid"])"/>  

Elementi

Nome Descrizione Obbligatorio
cache-remove-value Elemento radice.

Attributi

Nome Descrizione Obbligatorio Default
key La chiave del valore memorizzato in precedenza nella cache da rimuovere dalla cache. N/D

Utilizzo

Questo criterio può essere utilizzato nelle sezioni e negli ambiti di criteri seguenti.

  • Sezioni del criterio: inbound, outbound, backend, on-error

  • Ambiti del criterio: global, API, operation, product

Passaggi successivi

Per ulteriori informazioni sull'uso dei criteri, vedere Criteri di Gestione API.