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á, true umožň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-Charset Accept-Encoding , Accept-Language , , Authorization Expect , , 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í
- Oddíly zásad: příchozí
- Obory zásad: globální, pracovní prostor, produkt, rozhraní API, operace
- Brány: Classic, v2, consumption, self-host, workspace
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-parameter
můžete chtít deklarovat parametry v šabloně rewrite-uri nebo nastavit atributcopy-unmatched-params
nafalse
. 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á.
Související zásady
Související obsah
Další informace o práci se zásadami najdete v tématech:
- Kurz: Transformace a ochrana rozhraní API
- Referenční informace o zásadách pro úplný seznam prohlášení o zásadách a jejich nastavení
- Výrazy zásad
- Nastavení nebo úprava zásad
- Opakované použití konfigurací zásad
- Úložiště fragmentů zásad
- Vytváření zásad pomocí Microsoft Copilotu v Azure