Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: Alla API Management-nivåer
Principen cache-store cachelagrar svar enligt de angivna cacheinställningarna. Den här principen kan tillämpas i fall där svarsinnehållet förblir statiskt under en tidsperiod. Cachelagring av svar minskar bandbredds- och bearbetningskraven för serverdelswebbservern och minskar fördröjningen som uppfattas av API-konsumenter.
Kommentar
Den här principen måste ha en motsvarande Hämta från cache-princip .
Viktigt!
Den inbyggda cachen är instabil och delas av alla enheter i samma region i samma API Management-tjänst.
Kommentar
Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. För att hjälpa dig att konfigurera den här principen tillhandahåller portalen en guidad, formulärbaserad redigerare. Läs mer om hur du anger eller redigerar API Management-principer.
Principuttryck
<cache-store duration="seconds" cache-response="true | false" />
Attribut
| Attribut | beskrivning | Obligatoriskt | Standardvärde | 
|---|---|---|---|
| varaktighet | Time-to-live för de cachelagrade posterna, som anges i sekunder. Principuttryck tillåts. | Ja | Ej tillämpligt | 
| cache-response | Ange till cachelagrat truedet aktuella HTTP-svaret. Om attributet utelämnas cachelagras endast HTTP-svar med statuskoden200 OK. Principuttryck tillåts. | Nej | false | 
Förbrukning
- Principavsnitt: utgående
- Principomfattningar: global, arbetsyta, produkt, API, åtgärd
- Gatewayer: klassisk, v2, förbrukning, lokalt installerad, arbetsyta
Användningsanteckningar
- API Management cachelagrar endast svar på HTTP GET-begäranden.
- Den här principen kan bara användas en gång i ett principavsnitt.
- Vi rekommenderar att du konfigurerar en princip för hastighetsbegränsning (eller princip för hastighetsgräns per nyckel ) omedelbart efter alla cachesökningar. Detta hjälper till att hindra serverdelstjänsten från att överbelastas om cacheminnet inte är tillgängligt.
Exempel
Exempel med motsvarande cache-lookup-princip
Det här exemplet visar hur du använder cache-store principen tillsammans med en cache-lookup princip för att cachelagras svar i den inbyggda API Management-cachen.
Kommentar
Den hastighetsbegränsningsprincip som lagts till efter cachesökningen hjälper till att begränsa antalet anrop för att förhindra överlagring på serverdelstjänsten om cachen inte är tillgänglig.
<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>
Exempel med principuttryck
Det här exemplet visar hur du konfigurerar cachelagring av API Management-svar som matchar svarscachelagringen för serverdelstjänsten enligt vad som anges i serverdelstjänstens Cache-Control direktiv.
<!-- 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;
  }"
 />
Mer information finns i Principuttryck och Kontextvariabel.
Relaterade principer
Relaterat innehåll
Mer information om hur du arbetar med principer finns i:
- Självstudie: Transformera och skydda ditt API
- Principreferens för en fullständig lista över principinstruktioner och deras inställningar
- Principuttryck
- Ange eller redigera principer
- Återanvända principkonfigurationer
- Lagringsplats för principfragment
- Lagringsplats för principlekplats
- Principverktyg för Azure API Management
- Få Hjälp med Copilot för att skapa, förklara och felsöka principer