Sdílet prostřednictvím


Získání z mezipaměti

PLATÍ PRO: Všechny úrovně služby API Management

cache-lookup Pomocí zásad můžete provést vyhledávání mezipaměti a vrátit platnou odpověď uloženou v mezipaměti, pokud je k dispozici. Tyto zásady je možné použít v případech, kdy obsah odpovědi zůstává po určitou dobu statický. Ukládání odpovědí do mezipaměti snižuje požadavky na šířku pásma a zpracování na straně back-endového webového serveru a snižují latenci na straně uživatelů rozhraní API.

Poznámka:

Tato zásada musí mít odpovídající úložiště pro zásady mezipaměti .

Důležité

Integrovaná mezipaměť je nestálá a sdílí se všemi jednotkami ve stejné oblasti ve stejné službě API Management.

Poznámka:

Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Portál poskytuje průvodce editorem založeným na formulářích, který vám pomůže s konfigurací této zásady. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.

Prohlášení o zásadách

<cache-lookup vary-by-developer="true | false" vary-by-developer-groups="true | false" caching-type="prefer-external | external | internal" 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-private-response-caching is "true"-->
  <vary-by-header>header name</vary-by-header>
  <!-- optional, can be repeated -->
  <vary-by-query-parameter>parameter name</vary-by-query-parameter>
  <!-- optional, can be repeated -->
</cache-lookup>

Atributy

Atribut Popis Požaduje se Výchozí
allow-private-response-caching Pokud je tato možnost nastavená, trueumožňuje ukládání požadavků do mezipaměti, které obsahují autorizační hlavičku. Výrazy zásad jsou povolené. No false
ukládání do mezipaměti Vyberte mezi následujícími hodnotami atributu:
- internal pro použití integrované mezipaměti SLUŽBY API Management,
- external použít externí mezipaměť, jak je popsáno v tématu Použití externí služby Azure Cache for Redis ve službě Azure API Management,
- prefer-external použít externí mezipaměť, pokud je nakonfigurovaná nebo interní mezipaměť jinak.

Výrazy zásad nejsou povolené.
No prefer-external
podřízený typ ukládání do mezipaměti Tento atribut musí být nastaven na jednu z následujících hodnot.

– žádné – ukládání do podřízeného ukládání do mezipaměti není povoleno.
– privátní – podřízené soukromé ukládání do mezipaměti je povolené.
– veřejné – soukromé a sdílené podřízené ukládání do mezipaměti je povolené.

Výrazy zásad jsou povolené.
No Žádná
musí být znovu revalidate Pokud je povolena podřízená mezipaměť, tento atribut zapne nebo vypne direktivu must-revalidate řízení mezipaměti v odpovědích brány. Výrazy zásad jsou povolené. No true
vary-by-developer Nastavte na true ukládání odpovědí do mezipaměti na účet vývojáře, který vlastní klíč předplatného, který je součástí požadavku. Výrazy zásad jsou povolené. Ano false
vary-by-developer-groups Nastavte na true ukládání odpovědí do mezipaměti pro každou skupinu uživatelů. Výrazy zásad jsou povolené. Ano false

Elementy

Název Popis Povinní účastníci
vary-by-header Přidejte jeden nebo více těchto prvků pro zahájení ukládání odpovědí do mezipaměti na hodnotu zadané hlavičky, například Accept, , Accept-CharsetAccept-Encoding, Accept-Language, , AuthorizationExpect, , From, Host. If-Match No
vary-by-query-parameter Přidejte jeden nebo více těchto prvků pro zahájení ukládání odpovědí do mezipaměti na hodnotu zadanýchparametrůch Zadejte jeden nebo více parametrů. Jako oddělovač použijte středník. No

Využití

Poznámky k využití

  • API Management provádí vyhledávání v mezipaměti pouze pro požadavky HTTP GET.
  • Při použití vary-by-query-parametermůžete chtít deklarovat parametry v šabloně rewrite-uri nebo nastavit atribut copy-unmatched-params na false. Deaktivací tohoto příznaku se do back-endu odesílají parametry, které nejsou deklarovány.
  • Tuto zásadu je možné v oddílu zásad použít jenom jednou.

Příklady

Příklad s odpovídajícími zásadami úložiště mezipaměti

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

Příklad použití výrazů zásad

Tento příklad ukazuje, jak nakonfigurovat dobu ukládání odpovědí služby API Management do mezipaměti, která odpovídá ukládání odpovědí do mezipaměti back-endové služby podle direktivy back-endové Cache-Control služby.

<!-- The following cache policy snippets demonstrate how to control API Management response 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 default 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;
  }"
 />

Další informace naleznete v tématu Výrazy zásad a kontextová proměnná.

Další informace o práci se zásadami najdete v tématech: