Aus Cache abrufen
GILT FÜR: Alle API Management-Ebenen
Verwenden Sie die cache-lookup
-Richtlinie zum Durchführen einer Cachesuche und im Erfolgsfall zum Zurückgeben einer gültigen Antwort aus dem Cache. Diese Richtlinie kann in Fällen angewendet werden, in denen sich der Inhalt von Antworten über längere Zeit nicht ändert. Das Zwischenspeichern von Antworten senkt die Bandbreitennutzung und die Prozessoranforderungen auf dem Back-End-Webserver und verringert die Latenz für API-Consumer.
Hinweis
Diese Richtlinie setzt das Vorhandensein einer entsprechenden Richtlinie In Cache ablegen voraus.
Wichtig
Der integrierte Cache ist flüchtig und wird von allen Einheiten in derselben Region desselben API Management-Diensts gemeinsam genutzt.
Hinweis
Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Das Portal unterstützt Sie bei der Konfiguration dieser Richtlinie durch einen formularbasierten, angeleiteten Editor. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.
Richtlinienanweisung
<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>
Attribute
Attribut | BESCHREIBUNG | Erforderlich | Standard |
---|---|---|---|
allow-private-response-caching | Bei Festlegung auf true wird das Zwischenspeichern von Anforderungen erlaubt, die einen Autorisierungsheader enthalten. Richtlinienausdrücke sind zulässig. |
Nein | false |
caching-type | Wählen Sie aus den folgenden Attributwerten: - internal zur Verwendung des integrierten API Management-Caches- external zur Verwendung des externen Caches (siehe - ),- prefer-external zur Verwendung des externen Caches (sofern konfiguriert); andernfalls wird der interne Cache verwendet.Richtlinienausdrücke sind nicht zulässig. |
Nein | prefer-external |
downstream-caching-type | Dieses Attribut muss auf einen der folgenden Werte festgelegt werden. – none: Downstreamzwischenspeicherung ist unzulässig. – private: Private Downstreamzwischenspeicherung ist zulässig. – public: Private und gemeinsam genutzte Downstreamzwischenspeicherung ist zulässig. Richtlinienausdrücke sind zulässig. |
Nein | Keine |
must-revalidate | Wenn die Downstreamzwischenspeicherung aktiviert ist, aktiviert oder deaktiviert dieses Attribut die must-revalidate -Cachesteuerungsanweisung in Gatewayantworten. Richtlinienausdrücke sind zulässig. |
Nein | true |
vary-by-developer | Legen Sie den Parameter auf true fest, um Antworten pro Entwicklerkonto zwischenzuspeichern, das den in der Anforderung enthaltenen true besitzt. Richtlinienausdrücke sind zulässig. |
Ja | false |
vary-by-developer-groups | Legen Sie diese Option auf true fest, um Antworten true zwischenzuspeichern. Richtlinienausdrücke sind zulässig. |
Ja | false |
Elemente
Name | BESCHREIBUNG | Erforderlich |
---|---|---|
vary-by-header | Fügen Sie mindestens eines dieser Elemente hinzu, um das Zwischenspeichern von Antworten pro Wert des angegebenen Headers zu starten, z. B. Accept , Accept-Charset , Accept-Encoding , Accept-Language , Authorization , Expect , From , Host , If-Match . |
Nein |
vary-by-query-parameter | Fügen Sie mindestens eines dieser Elemente hinzu, um das Zwischenspeichern von Antworten pro Wert der angegebenen Abfrageparameter zu starten. Geben Sie einen oder mehrere Parameter an. Verwenden Sie Semikolons als Trennzeichen. | Nein |
Verwendung
- Richtlinienabschnitte: inbound
- Richtlinienbereiche: global, Arbeitsbereich, Produkt, API, Vorgang
- Gateways: klassisch, v2, Verbrauch, selbstgehostet, Arbeitsbereich
Hinweise zur Verwendung
- API Management führt die Cachesuche nur für HTTP GET-Anforderungen durch.
- Bei Verwendung von
vary-by-query-parameter
empfiehlt es sich gegebenenfalls, die Parameter in der Vorlage „rewrite-uri“ zu deklarieren oder das Attributcopy-unmatched-params
auffalse
festzulegen. Wenn Sie dieses Flag deaktivieren, werden nicht deklarierte Parameter an das Back-End gesendet.
- Diese Richtlinie kann nur einmal in einem Richtlinienabschnitt verwendet werden.
Beispiele
Beispiel mit entsprechender Cachespeicherrichtlinie
<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>
Beispiel für die Verwendung von Richtlinienausdrücken
Dieses Beispiel zeigt die Konfiguration der Dauer des API Management-Antwortcachings. Diese entspricht dem Zwischenspeichern von Antworten des Back-End-Diensts wie durch die Cache-Control
-Anweisung des Back-End-Diensts angegeben.
<!-- 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;
}"
/>
Weitere Informationen finden Sie unter Richtlinienausdrücke und Kontextvariable.
Verwandte Richtlinien
Zugehöriger Inhalt
Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier:
- Tutorial: Transformieren und Schützen Ihrer API
- Unter Richtlinien für die API-Verwaltung finden Sie eine komplette Liste der Richtlinienanweisungen und der zugehörigen Einstellungen.
- Richtlinienausdrücke
- Festlegen oder Bearbeiten von Richtlinien
- Wiederverwenden von Richtlinienkonfigurationen
- Repository für Richtliniencodeausschnitte
- Azure API Management-Richtlinientoolkit
- Erstellen von Richtlinien mit Microsoft Copilot in Azure