Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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é. |
Ne | 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í mezipaměti kompatibilní s 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é. |
Ne | 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é. |
Ne | Žá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é. |
Ne | 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 | Požaduje se |
|---|---|---|
| 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 |
Ne |
| 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. | Ne |
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-parametermůžete chtít deklarovat parametry v šabloně rewrite-uri nebo nastavit atributcopy-unmatched-paramsnafalse. 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.
- Tato zásada není podporována uvnitř fragmentu zásad.
- Doporučujeme nakonfigurovat zásady omezení rychlosti (nebo zásady omezení rychlosti podle klíče ) okamžitě po každém vyhledávání v mezipaměti. To pomáhá zabránit přetížení back-endové služby, pokud mezipaměť není dostupná.
Příklady
Příklad s odpovídajícími zásadami úložiště mezipaměti
Tento příklad ukazuje, jak použít zásadu cache-storecache-lookup spolu se zásadami k ukládání odpovědí do mezipaměti v integrované mezipaměti SLUŽBY API Management.
Poznámka:
Po vyhledávání cache přidejte politiku omezení rychlosti (nebo politiku omezení podle klíčů ), která pomůže omezit počet hovorů a zabrání přetížení backendové služby v případě, že cache není dostupná.
<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>
<rate-limit calls="10" renewal-period="60" />
</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>
<rate-limit calls="10" renewal-period="60" />
<!-- 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
- úložiště ukázek Policy
- Sada nástrojů zásad služby Azure API Management
- Získejte asistenci Copilotu při vytváření, vysvětlování a řešení problémů se zásadami.