Ophalen uit cache
VAN TOEPASSING OP: Alle API Management-lagen
Gebruik het cache-lookup
beleid om cachezoekacties uit te voeren en een geldig antwoord in de cache te retourneren wanneer dit beschikbaar is. 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 overeenkomend Archief hebben voor cachebeleid .
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-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>
Kenmerken
Kenmerk | Beschrijving | Vereist | Standaardinstelling |
---|---|---|---|
privé-antwoord-caching toestaan | Wanneer deze optie is ingesteld true , kunt u aanvragen die een autorisatieheader bevatten, opslaan in cache. Beleidsexpressies zijn toegestaan. |
Nee | false |
caching-type | Kies tussen de volgende waarden van het kenmerk: - internal om de ingebouwde API Management-cache te gebruiken,- external om de externe cache te gebruiken zoals beschreven in Een externe Azure Cache voor Redis gebruiken in Azure API Management,- prefer-external om externe cache te gebruiken als deze anders is geconfigureerd of interne cache.Beleidsexpressies zijn niet toegestaan. |
Nee | prefer-external |
downstream-caching-type | Dit kenmerk moet worden ingesteld op een van de volgende waarden. - geen - downstreamcaching is niet toegestaan. - privé- en downstream-privécaching is toegestaan. - openbaar- privé- en gedeelde downstreamcaching is toegestaan. Beleidsexpressies zijn toegestaan. |
Nee | Geen |
moet opnieuw worden gevalideerd | Wanneer downstreamcaching is ingeschakeld, schakelt dit kenmerk de instructie cachebeheer must-revalidate in gatewayantwoorden in of uit. Beleidsexpressies zijn toegestaan. |
Nee | true |
variëren per ontwikkelaar | Ingesteld op true antwoorden in de cache per ontwikkelaarsaccount dat eigenaar is van de abonnementssleutel die is opgenomen in de aanvraag. Beleidsexpressies zijn toegestaan. |
Ja | false |
variëren per ontwikkelaar-groepen | Ingesteld op true het opslaan van antwoorden in de cache per gebruikersgroep. Beleidsexpressies zijn toegestaan. |
Ja | false |
Elementen
Name | Beschrijving | Vereist |
---|---|---|
vary-by-header | Voeg een of meer van deze elementen toe om reacties in de cache op te slaan per waarde van de opgegeven header, zoals Accept , Accept-Charset Accept-Encoding , , Accept-Language , Authorization , Expect , From , , . Host If-Match |
Nee |
vary-by-query-parameter | Voeg een of meer van deze elementen toe om reacties in de cache op te slaan per waarde van opgegeven queryparameters. Voer één of meerdere parameters in. Gebruik puntkomma's als scheidingsteken. | Nee |
Gebruik
- Beleidssecties: inkomend
- Beleidsbereik: globaal, werkruimte, product, API, bewerking
- Gateways: klassiek, v2, verbruik, zelf-hostend, werkruimte
Gebruiksnotities
- API Management voert alleen cachezoekacties uit voor HTTP GET-aanvragen.
vary-by-query-parameter
Wanneer u deze gebruikt, kunt u de parameters in de herschrijf-URI-sjabloon declareren of het kenmerk instellen opfalse
copy-unmatched-params
. Door deze vlag te deactiveren, worden parameters die niet zijn gedeclareerd, verzonden naar de back-end.
- Dit beleid kan slechts eenmaal worden gebruikt in een beleidssectie.
Voorbeelden
Voorbeeld met bijbehorend cachearchiefbeleid
<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>
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>
<!-- 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
- Beleid ontwerpen met Behulp van Microsoft Copilot in Azure