Pobieranie z pamięci podręcznej
DOTYCZY: Wszystkie warstwy usługi API Management
Użyj zasad, cache-lookup
aby wykonać wyszukiwanie w pamięci podręcznej i zwrócić prawidłową odpowiedź z pamięci podręcznej, jeśli jest dostępna. Te zasady można stosować w przypadkach, gdy zawartość odpowiedzi pozostaje statyczna przez pewien czas. Buforowanie odpowiedzi zmniejsza wymagania dotyczące przepustowości i przetwarzania na serwerze internetowym zaplecza oraz zmniejsza opóźnienia dla użytkowników interfejsu API.
Uwaga
Te zasady muszą mieć odpowiednie zasady Magazynu do pamięci podręcznej .
Ważne
Wbudowana pamięć podręczna jest niestabilna i współużytkowana przez wszystkie jednostki w tym samym regionie w tej samej usłudze API Management.
Uwaga
Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Aby ułatwić konfigurowanie tych zasad, portal udostępnia edytor oparty na formularzach z przewodnikiem. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.
Instrukcja zasad
<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>
Atrybuty
Atrybut | opis | Wymagani | Wartość domyślna |
---|---|---|---|
buforowanie allow-private-response-cach | Gdy jest ustawiona wartość true , umożliwia buforowanie żądań zawierających nagłówek autoryzacji. Wyrażenia zasad są dozwolone. |
Nie. | false |
Typ buforowania | Wybierz między następującymi wartościami atrybutu: - internal do korzystania z wbudowanej pamięci podręcznej usługi API Management,- external aby używać zewnętrznej pamięci podręcznej zgodnie z opisem w temacie Używanie zewnętrznej pamięci podręcznej Azure Cache for Redis w usłudze Azure API Management,- prefer-external do korzystania z zewnętrznej pamięci podręcznej, jeśli skonfigurowano lub wewnętrzną pamięć podręczną.Wyrażenia zasad nie są dozwolone. |
Nie. | prefer-external |
typ buforowania podrzędnego | Ten atrybut musi być ustawiony na jedną z następujących wartości. - brak — buforowanie podrzędne jest niedozwolone. - prywatne - podrzędne prywatne buforowanie jest dozwolone. - publiczne - prywatne i współużytkowane podrzędne buforowanie jest dozwolone. Wyrażenia zasad są dozwolone. |
Nie. | Brak |
must-revalidate | Gdy buforowanie podrzędne jest włączone, ten atrybut włącza lub wyłącza dyrektywę must-revalidate kontroli pamięci podręcznej w odpowiedziach bramy. Wyrażenia zasad są dozwolone. |
Nie. | true |
vary-by-developer | Ustaw wartość na wartość , aby true buforować odpowiedzi na konto dewelopera, które jest właścicielem klucza subskrypcji zawartego w żądaniu. Wyrażenia zasad są dozwolone. |
Tak | false |
vary-by-developer-groups | Ustaw wartość na wartość , aby true buforować odpowiedzi na grupę użytkowników. Wyrażenia zasad są dozwolone. |
Tak | false |
Elementy
Nazwa/nazwisko | opis | Wymagania |
---|---|---|
vary-by-header | Dodaj co najmniej jeden z tych elementów, aby rozpocząć buforowanie odpowiedzi na określoną wartość określonego nagłówka, na przykład Accept , Accept-Charset , Accept-Language Expect Authorization From Accept-Encoding , . Host If-Match |
Nie. |
vary-by-query-parameter | Dodaj co najmniej jeden z tych elementów, aby rozpocząć buforowanie odpowiedzi na wartość określonych parametrów zapytania. Wprowadź jeden lub wiele parametrów. Użyj średnika jako separatora. | Nie. |
Użycie
- Sekcje zasad: ruch przychodzący
- Zakresy zasad: globalny, obszar roboczy, produkt, interfejs API, operacja
- Bramy: klasyczne, v2, zużycie, self-hosted, obszar roboczy
Uwagi dotyczące użycia
- Usługa API Management wykonuje tylko wyszukiwanie pamięci podręcznej dla żądań HTTP GET.
- W przypadku używania
vary-by-query-parameter
polecenia możesz zadeklarować parametry w szablonie rewrite-uri lub ustawić atrybutcopy-unmatched-params
nafalse
. Dezaktywując tę flagę, parametry, które nie są zadeklarowane, są wysyłane do zaplecza.
- Te zasady można użyć tylko raz w sekcji zasad.
Przykłady
Przykład z odpowiednimi zasadami magazynu pamięci podręcznej
<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>
Przykład użycia wyrażeń zasad
W tym przykładzie pokazano, jak skonfigurować czas buforowania odpowiedzi usługi API Management zgodny z buforowaniem odpowiedzi usługi zaplecza określonym w dyrektywie usługi zaplecza Cache-Control
.
<!-- 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;
}"
/>
Aby uzyskać więcej informacji, zobacz Wyrażenia zasad i Zmienna kontekstowa.
Powiązane zasady
Powiązana zawartość
Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz:
- Samouczek: przekształcanie i ochrona interfejsu API
- Dokumentacja zasad dla pełnej listy instrukcji zasad i ich ustawień
- Wyrażenia zasad
- Ustawianie lub edytowanie zasad
- Ponowne używanie konfiguracji zasad
- Repozytorium fragmentów zasad
- Tworzenie zasad przy użyciu rozwiązania Microsoft Copilot na platformie Azure