Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
VAN TOEPASSING OP: Alle API Management-lagen
Het cache-store beleid slaat antwoorden in de cache op volgens de opgegeven cache-instellingen. Dit beleid kan worden toegepast in gevallen waarin antwoordinhoud gedurende een bepaalde periode statisch blijft. Antwoordcaching vermindert de bandbreedte- en verwerkingsvereisten voor de back-endwebserver en verlaagt de latentie die API-gebruikers ervaren.
Notitie
Dit beleid moet een bijbehorend Ophalen uit cachebeleid hebben.
Belangrijk
De ingebouwde cache is vluchtig en wordt gedeeld door alle eenheden in dezelfde regio in dezelfde API Management-service.
Notitie
Stel de elementen en onderliggende elementen van het beleid in de volgorde in die in de beleidsverklaring is opgegeven. Om u te helpen dit beleid te configureren, biedt de portal een begeleide editor op basis van formulieren. Meer informatie over het instellen of bewerken van API Management-beleid.
Beleidsinstructie
<cache-store duration="seconds" cache-response="true | false" />
Kenmerken
| Kenmerk | Beschrijving | Vereist | Standaardinstelling |
|---|---|---|---|
| duur | Time-to-live van de items in de cache, opgegeven in seconden. Beleidsexpressies zijn toegestaan. | Ja | N.v.t. |
| cache-response | Ingesteld op true cache van het huidige HTTP-antwoord. Als het kenmerk wordt weggelaten, worden alleen HTTP-antwoorden met de statuscode 200 OK in de cache opgeslagen. Beleidsexpressies zijn toegestaan. |
Nee | false |
Gebruik
- Beleidssecties: uitgaand
- Beleidsbereik: globaal, werkruimte, product, API, bewerking
- Gateways: klassiek, v2, verbruik, zelf-hostend, werkruimte
Gebruiksnotities
- API Management slaat alleen reacties op HTTP GET-aanvragen in de cache op.
- Dit beleid kan slechts eenmaal worden gebruikt in een beleidssectie.
- U wordt aangeraden een beleid voor frequentielimiet (of beleid voor frequentielimiet per sleutel ) onmiddellijk na een cachezoekactie te configureren. Dit helpt ervoor te zorgen dat uw back-endservice overbelast raakt als de cache niet beschikbaar is.
Voorbeelden
Voorbeeld met overeenkomend cachezoekbeleid
In dit voorbeeld ziet u hoe u het beleid samen met een cache-store beleid gebruikt voor het cache-lookup opslaan van antwoorden in de ingebouwde API Management-cache.
Notitie
Het beleid voor frequentielimiet dat is toegevoegd nadat de cachezoekactie heeft toegevoegd, helpt het aantal aanroepen te beperken om te voorkomen dat de back-endservice overbelast raakt als de cache niet beschikbaar is.
<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>
Voorbeeld van het gebruik van beleidsexpressies
In dit voorbeeld ziet u hoe u de reactiecacheduur van API Management configureert die overeenkomt met de reactiecache van de back-endservice, zoals opgegeven in de instructie van Cache-Control de back-endservice.
<!-- 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;
}"
/>
Zie Beleidsexpressies en contextvariabele voor meer informatie.
Gerelateerd beleid
Gerelateerde inhoud
Zie voor meer informatie over het werken met beleid:
- Zelfstudie: Uw API transformeren en beveiligen
- Beleidsreferentie voor een volledige lijst met beleidsinstructies en hun instellingen
- Beleidsexpressies
- Beleid instellen of bewerken
- Beleidsconfiguraties opnieuw gebruiken
- Beleidsfragmentenopslagplaats
- Beleidsspeelplaats
- Azure API Management-beleidstoolkit
- Krijg hulp van Copilot bij het maken, uitleggen en oplossen van problemen met beleid.