Zasada ResponseCache

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Przechowuje dane z zasobu backendu w pamięci podręcznej, zmniejszając liczbę żądań do zasobu. Jako aplikacje możesz wysyłać żądania do tego samego identyfikatora URI, za pomocą tej zasady możesz zwracać odpowiedzi z pamięci podręcznej, a nie i przekierowuje te żądania do serwera backendu. Zasada ResponseCache może poprawić wydajność pracy dzięki zmniejszeniu opóźnień i ruchu w sieci.

Prawdopodobnie najbardziej przyda Ci się ResponseCache, gdy dane backendu używane przez interfejs API zostaną zaktualizowane. tylko okresowo. Załóżmy na przykład, że masz interfejs API, który ujawnia dane z raportów pogodowych. odświeża się tylko co 10 minut. Przez używanie ResponseCache do zwracania odpowiedzi z pamięci podręcznej między odświeżenia, możesz zmniejszyć liczbę żądań docierających do backendu. Zmniejsza to również liczby przeskoków sieciowych.

Do krótkoterminowego buforowania ogólnego przeznaczenia, rozważ zastosowanie zasady Wypełnij pamięć podręczną. Zasada ta jest używana w połączeniu z zasadą pamięci podręcznej wyszukiwania (do odczytu wpisów pamięci podręcznej) oraz Unieważnij zasadę dotyczącą pamięci podręcznej (do unieważniania wpisów).

Obejrzyj ten film, aby zapoznać się z zasadami dotyczącymi pamięci podręcznej odpowiedzi.

Przykłady

10-minutowa pamięć podręczna

Ten przykład pokazuje, jak przechowywać odpowiedzi w pamięci podręcznej przez 10 minut.

Załóżmy, że masz interfejs API pod tym adresem URL:

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

Parametru zapytania w używasz jako klucza pamięci podręcznej. Apigee Edge sprawdza wartości parametru zapytania w po otrzymaniu żądania. Jeśli jest że w pamięci podręcznej znajduje się nieważna odpowiedź, odpowiedź jest zwróć się do klienta, który wysłał żądanie.

Teraz wyobraź sobie, że masz zasadę ResponseCache skonfigurowaną w następujący sposób.

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

Gdy serwer proxy interfejsu API po raz pierwszy otrzyma komunikat z żądaniem dotyczący poniższego adresu URL, zostanie zwrócony błąd jest buforowana. Przy drugim żądaniu w ciągu 10 minut następuje wyszukiwanie w pamięci podręcznej – odpowiedź z pamięci podręcznej jest zwracana do aplikacji bez przekazywania żądań do usługi backendu.

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

Pomiń wyszukiwanie pamięci podręcznej

Poniższy przykład pokazuje, jak pominąć wyszukiwanie w pamięci podręcznej i korzystać z pamięci podręcznej odświeżony. Zobacz też . w tym filmie na temat korzystania z funkcji SkipCacheOptions.

Opcjonalny warunek SkipCachelookup (jeśli został skonfigurowany) jest sprawdzany w ścieżce żądania. Jeśli warunek zwróci wartość prawda, wyszukiwanie w pamięci podręcznej zostanie pominięte, a pamięć podręczna zostanie odświeżony.

Typowym zastosowaniem warunkowego odświeżania pamięci podręcznej jest warunek, który definiuje określony nagłówek, który powoduje, że warunek jest oceniany jako prawda. Aplikacja kliencka oparta na skryptach może być skonfigurowana tak, aby okresowo przesyłać żądanie z odpowiednim nagłówkiem HTTP, jawnie powoduje odświeżenie pamięci podręcznej odpowiedzi.

Wyobraź sobie na przykład wywołanie interfejsu API pod tym adresem URL:

'http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778' -H "bypass-cache:true"

Teraz wyobraź sobie następującą zasadę ResponseCache skonfigurowaną na tym serwerze proxy. Pamiętaj, że parametr Warunek pomijania pamięci podręcznej ma wartość prawda.

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <!-- Explicitly refresh the cached response -->
    <SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

Więcej informacji o warunkach znajdziesz w sekcji Zmienne przepływu i .

Odwołanie do elementu

Odwołanie do elementu opisuje elementy i atrybuty zasady.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" />
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSeconds ref="flow.variable.here">300</TimeoutInSeconds>
    </ExpirySettings>
    <CacheResource>cache_to_use</CacheResource>
    <CacheLookupTimeoutInSeconds/>
    <ExcludeErrorResponse/>
    <SkipCacheLookup/>
    <SkipCachePopulation/>
    <UseAcceptHeader/>
    <UseResponseCacheHeaders/>
</ResponseCache>

&lt;ResponseCache&gt; atrybuty

<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">

The following table describes attributes that are common to all policy parent elements:

Attribute Description Default Presence
name

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

N/A Required
continueOnError

Set to false to return an error when a policy fails. This is expected behavior for most policies.

Set to true to have flow execution continue even after a policy fails.

false Optional
enabled

Set to true to enforce the policy.

Set to false to turn off the policy. The policy will not be enforced even if it remains attached to a flow.

true Optional
async

This attribute is deprecated.

false Deprecated

<DisplayName> element

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, natural-language name.

<DisplayName>Policy Display Name</DisplayName>
Default

N/A

If you omit this element, the value of the policy's name attribute is used.

Presence Optional
Type String

&lt;CacheKey&gt; element

Konfiguruje unikalny wskaźnik danych przechowywanych w pamięci podręcznej.

Rozmiar kluczy pamięci podręcznej nie może przekraczać 2 KB.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

Domyślne:

Nie dotyczy

Obecność:

Wymagane

Typ:

Nie dotyczy

<CacheKey> tworzy nazwę każdego fragmentu danych przechowywanych w pamięci podręcznej. Klucz jest często ustawiany za pomocą wartości z nagłówków encji lub parametrów zapytania. W takich przypadkach atrybut ref elementu określa zmienną zawierającą wartość klucza.

W czasie działania wartości <KeyFragment> są dodawane prefiksem Wartość elementu <Scope> lub <Prefix>. Na przykład parametr daje w rezultacie klucz pamięci podręcznej równy UserToken__apiAccessToken__&lt;value_of_client_id&gt;:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

Elementu <CacheKey> używasz w połączeniu z: <Prefix> i <Scope>. Więcej informacji znajdziesz w artykule na temat pracy z kluczami pamięci podręcznej.

&lt;CacheLookupTimeoutInSeconds&gt; element

Określa liczbę sekund, po których nieudane wyszukiwanie w pamięci podręcznej jest uważane za w pamięci podręcznej. W takim przypadku przepływ zostanie wznawiany na ścieżce braku pamięci podręcznej.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

Domyślne:

30

Obecność:

Opcjonalnie

Typ:

Liczba całkowita

&lt;CacheResource&gt; element

Określa pamięć podręczną, w której mają być przechowywane wiadomości. Pomiń ten element, aby użyć uwzględnionych elementów współużytkowana pamięć podręczna. Musisz podać nazwę CacheResource, jeśli chcesz mieć możliwość administrator może usunąć wpisy zawarte w pamięci podręcznej. Więcej informacji na ten temat znajdziesz w artykule Pamięci podręczne.

<CacheResource>cache_to_use</CacheResource>

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Więcej informacji o konfigurowaniu pamięci podręcznych znajdziesz w sekcji Tworzenie i edytowanie środowiska Cache.

&lt;CacheKey&gt;/&lt;KeyFragment&gt; element

Określa wartość, która powinna być uwzględniona w kluczu pamięci podręcznej, tworząc przestrzeń nazw na potrzeby dopasowywania żądań odpowiedzi w pamięci podręcznej.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Nie dotyczy

Może to być klucz (podana przez Ciebie statyczna nazwa) lub wartość (wpis dynamiczny ustawiony przez odwołania do zmiennej). Wszystkie określone fragmenty łącznie (plus prefiks) są połączone z utwórz klucz pamięci podręcznej.

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

Elementu <KeyFragment> używasz w połączeniu z: <Prefix> i <Scope>. Więcej informacji znajdziesz w artykule na temat pracy z kluczami pamięci podręcznej.

Atrybuty

Atrybut Typ Domyślny Wymagane Opis
odsyłacz ciąg znaków Nie

Zmienna, z której ma zostać pobrana wartość. Nie należy używać, jeśli ten element zawiera wartość literałową.

&lt;CacheKey&gt;/&lt;Prefix&gt; element

Określa wartość, która ma być używana jako prefiks klucza pamięci podręcznej.

<Prefix>prefix_string</Prefix>

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Użyj tej wartości zamiast <Scope>, jeśli chcesz określić własną wartość zamiast wartości wyliczanej <Scope>. Jeśli zostanie określona, <Prefix> dodaje na początku wartość klucza pamięci podręcznej dla wpisów zapisanych w pamięci podręcznej. O Wartość elementu <Prefix> zastępuje element <Scope> .

Elementu <Prefix> używasz w połączeniu z: <CacheKey> i <Scope>. Więcej informacji znajdziesz w artykule na temat pracy z kluczami pamięci podręcznej.

&lt;ExcludeErrorResponse&gt; element

Obecnie ta zasada domyślnie buforuje odpowiedzi HTTP ze wszystkimi możliwymi Kod stanu. Oznacza to, że zarówno odpowiedzi udane, jak i błędy są zapisywane w pamięci podręcznej. Na przykład odpowiedzi z Zarówno kody stanu 2xx, jak i 3xx są domyślnie zapisywane w pamięci podręcznej.

Jeśli nie chcesz zapisywać celu w pamięci podręcznej, ustaw ten element na true odpowiedzi z kodami stanu błędów HTTP; tylko odpowiedzi z kodami stanu od 200 do 205 będą jeśli ten element ma wartość prawda, w pamięci podręcznej. To jedyne kody stanu HTTP, jako które Edge liczy „sukces” i nie będzie można zmienić tego powiązania.

Informacje o wzorcach pamięci podręcznej odpowiedzi, w których ten element jest przydatny, znajdziesz w tym poście na karcie Społeczność.

Uwaga: w przyszłej wersji (do ustalenia) domyślne ustawienie tego zmieni się na true. Zobacz Apigee Informacje o wersji.

<ExcludeErrorResponse>true</ExcludeErrorResponse>

Domyślne:

fałsz

Obecność:

Opcjonalnie

Typ:

Wartość logiczna

&lt;ExpirySettings&gt; element

Określa, kiedy wpis w pamięci podręcznej powinien wygasnąć. Jeśli jest dostępny, <TimeoutInSeconds> zastępuje zarówno <TimeOfDay>, jak i <ExpiryDate>.

<ExpirySettings>
  <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
  <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
  <ExpiryDate ref="date_variable">expiration_date</ExpiryDate>
</ExpirySettings>

Domyślne:

Nie dotyczy

Obecność:

Wymagane

Typ:

Nie dotyczy

&lt;ExpirySettings&gt;/&lt;ExpiryDate&gt; element

Określa datę wygaśnięcia wpisu w pamięci podręcznej. Użyj formularza mm-dd-yyyy. Jeśli ten element jest obecny, jego odpowiednik (<TimeoutInSeconds>) zastępuje <ExpiryDate>

<ExpirySettings>
    <ExpiryDate ref="{date_variable}">expiration_date</ExpiryDate>
</ExpirySettings>

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Atrybuty

<ExpiryDate ref="" />
Atrybut Opis Domyślny Obecność Typ
odsyłacz

Zmienna, z której ma zostać pobrana wartość. Nie należy używać, jeśli ten element zawiera wartość literałową.

Nie dotyczy Opcjonalnie Ciąg znaków

&lt;ExpirySettings&gt;/&lt;TimeOfDay&gt; element

Pora dnia, o której wpis pamięci podręcznej powinien wygasnąć. Użyj formularza hh:mm:ss . Jeśli ten element jest obecny, jego odpowiednik (<TimeoutInSeconds>) zastępuje <TimeOfDay>

Podaj godzinę w formacie GG:mm:ss, gdzie GG oznacza godzinę na zegarze 24-godzinnym. Dla: np. 14:30:00 dla 2:30 po południu.

W przypadku pory dnia domyślne ustawienia regionalne i strefa czasowa będą się różnić w zależności od lokalizacji kodu. uruchomionych (który nie jest znany podczas konfigurowania zasady). Informacje na temat konfigurowania Więcej informacji można znaleźć w sekcji Tworzenie i edytowanie pamięci podręcznej środowiska.

<ExpirySettings>
    <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
</ExpirySettings>

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Atrybuty

Atrybut Opis Domyślny Obecność Typ
odsyłacz Zmienna z wartością czasu ważności. Nie dotyczy Opcjonalnie Ciąg

&lt;ExpirySettings&gt;/&lt;TimeoutInSec&gt; element

Liczba sekund, po których wpis w pamięci podręcznej powinien wygasnąć.

&lt;ExpirySettings&gt;/&lt;TimeoutInSeconds&gt; element

Liczba sekund, po których wpis w pamięci podręcznej powinien wygasnąć. Jeśli ten element jest obecny, zastępuje jego elementy potomne, <TimeOfDay> i <ExpiryDate>.

<ExpirySettings>
    <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
</ExpirySettings>

Uwaga: podaj domyślną wartość limitu czasu, która będzie używana, gdy odsyłający nie otrzyma wartości z pliku duration_variable

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Atrybuty

Atrybut Opis Domyślny Obecność Typ
odsyłacz Zmienna z wartością limitu czasu.
Nie dotyczy
Opcjonalnie Ciąg znaków

&lt;Scope&gt; element

Wyliczenie używane do tworzenia prefiksu klucza pamięci podręcznej, gdy <Prefix> element <CacheKey> nie zawiera elementu.

<Scope>scope_enumeration</Scope>

Domyślne:

„Ekskluzywna”

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Ustawienie <Scope> określa klucz pamięci podręcznej, który jest dodawany zgodnie z wartość <Scope>. Na przykład klucz pamięci podręcznej może mieć następującą postać, gdy: zakres jest ustawiony na Exclusive : orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

Jeśli element <Prefix> występuje w elemencie <CacheKey>, zastępuje wartość elementu <Scope>. Prawidłowe wartości obejmują wyliczenia poniżej.

Elementu <Scope> używasz w połączeniu z: <CacheKey> i <Prefix>. Więcej informacji znajdziesz w artykule na temat pracy z kluczami pamięci podręcznej.

Dopuszczalne wartości

Wartość zakresu Opis
Global

Klucz pamięci podręcznej jest wspólny dla wszystkich serwerów proxy interfejsów API wdrożonych w środowisku. Klucz pamięci podręcznej to zostanie dołączony do postaci orgName __ envName __.

Jeśli zdefiniujesz wpis <CacheKey> z parametrem <KeyFragment> apiAccessToken i zakres <Global>, każdy wpis jest przechowywany jako orgName__envName__apiAccessToken, po nim następuje operator zserializowanej wartości tokena dostępu. Dla serwera proxy interfejsu API wdrożonego w środowisku o nazwie „test” w organizacji o nazwie „apifactory” tokeny dostępu były przechowywane w kolekcji ten klucz pamięci podręcznej: apifactory__test__apiAccessToken.

Application

Jako prefiks jest używana nazwa serwera proxy interfejsu API.

Klucz pamięci podręcznej ma postać orgName__envName__apiProxyName.

Proxy

Jako prefiks jest używana konfiguracja ProxyEndpoint.

Klucz pamięci podręcznej jest dodawany do formularza orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName

Target

Jako prefiks używana jest konfiguracja docelowego punktu końcowego.

Klucz pamięci podręcznej dodany na początku formularza orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName

Exclusive

Domyślny: Jest to najbardziej szczegółowe rozwiązanie, więc wiąże się z minimalnym ryzykiem związanym z przestrzenią nazw i konfliktach w danej pamięci podręcznej.

Prefiks może mieć jedną z dwóch form:

  • Jeśli zasada jest dołączona do procesu ProxyEndpoint, prefiksem jest format ApiProxyName_ProxyEndpointName.
  • Jeśli zasada jest dołączona w sekcji TargetEndpoint, prefiksem jest formularz ApiProxyName_TargetName.

Klucz pamięci podręcznej dodany na początku formularza orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName

Pełny ciąg znaków może na przykład wyglądać tak:

apifactory__test__weatherapi__16__default__apiAccessToken
.

&lt;SkipCacheLookup&gt; element

Definiuje wyrażenie, które, jeśli w czasie działania zwraca wartość prawda, wskazuje, że wyszukiwanie w pamięci podręcznej należy pominąć i odświeżyć pamięć podręczną. Zobacz też ten artykuł wideo o korzystaniu z metody SkipCacheOptions.

<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

W poniższym przykładzie: jeśli zmienna pomijania pamięci podręcznej ma w nagłówku przychodzącego wartość „true” (prawda), wyszukiwanie w pamięci podręcznej zostanie pominięte, a pamięć podręczna zostanie odświeżona.

<SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>

&lt;SkipCachePopulation&gt; element

Definiuje wyrażenie, które po zastosowaniu go do wartości prawda w czasie działania określa, że zapis w funkcji należy pominąć. Zobacz też ten artykuł wideo na temat korzystania z metody SkipCachePopulacja.

<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>

Domyślne:

Nie dotyczy

Obecność:

Opcjonalnie

Typ:

Ciąg znaków

Przykład poniżej spowoduje pominięcie zapisu w pamięci podręcznej, jeśli kod stanu odpowiedzi to 400 lub wyższe:

<SkipCachePopulation>response.status.code >= 400</SkipCachePopulation>

&lt;UseAcceptHeader&gt; element

Ustaw jako true, aby klucz pamięci podręcznej wpisu odpowiedzi był uzupełniany wartościami z odpowiedź Zaakceptuj nagłówki.

Edge używa interfejsów Accept, Accept-Encoding i Accept-Language i nagłówkach żądań Accept-Charset przy obliczaniu klucza pamięci podręcznej. To podejście uniemożliwia klientowi uzyskanie typu mediów, o który nie prosił.

Zastanów się na przykład, czy 2 żądania przychodzą z tego samego adresu URL, przy czym pierwsze z nich akceptuje kod gzip, a drugi nie. Pierwsze żądanie zostanie zapisane w pamięci podręcznej, a wpis w pamięci podręcznej – być może to odpowiedź w pliku gzip. Drugie żądanie odczyta wartość z pamięci podręcznej, a następnie zwrócenie wpisu skompresowanego do kodu gzip klientowi, który nie może odczytać tego pliku.

Więcej informacji znajdziesz w sekcji Konfigurowanie klucza pamięci podręcznej.

<UseAcceptHeader>false</UseAcceptHeader>

Domyślne:

fałsz

Obecność:

Opcjonalnie

Typ:

Wartość logiczna

&lt;UseResponseCacheHeaders&gt; element

Ustaw jako true, aby nagłówki odpowiedzi HTTP były brane pod uwagę podczas ustawiania czasu na żywo” (TTL) odpowiedzi w pamięci podręcznej. Jeśli to prawda, Edge bierze pod uwagę wartości pary klucz-wartość podane niżej nagłówki odpowiedzi, porównując wartości z wartościami ustawionymi przez <ExpirySettings> podczas ustawiania czasu publikacji:

  • Cache-Control s-maxage
  • Cache-Control max-age
  • Expires

Więcej informacji znajdziesz w artykule Ustawianie daty wygaśnięcia wpisu w pamięci podręcznej. .

<UseResponseCacheHeaders>false</UseResponseCacheHeaders>

Domyślne:

fałsz

Obecność:

Opcjonalnie

Typ:

Wartość logiczna

Zastosowanie

Maksymalny rozmiar każdego obiektu w pamięci podręcznej to 256 KB. (Szczegółowe informacje na temat tego, jak przeglądarka Edge pamięć podręczna procesów, patrz Pamięć podręczna wewnętrznych).

Dzięki konfiguracji w zasadzie ResponseCache możesz włączyć odpowiedź HTTP do przeglądarki Edge nagłówki w ustawianiu daty ważności wpisu w pamięci podręcznej i kluczy pamięci podręcznej. W tej sekcji opisano, jak używać z nagłówkami do zarządzania wygaśnięciem pamięci podręcznej i kluczami pamięci podręcznej.

Więcej informacji o tym, jak Edge obsługuje nagłówki odpowiedzi z użyciem zasady ResponseCache, znajdziesz w artykule Obsługa nagłówków odpowiedzi HTTP.

Ustawianie daty wygaśnięcia wpisu w pamięci podręcznej

Podobnie jak w przypadku pola Wypełnij zasadom pamięci podręcznej, możesz ustawić datę wygaśnięcia (czasu życia) wpisu w pamięci podręcznej odpowiedzi za pomocą <ExpirySettings>. W zasadzie ResponseCache możesz też mieć przeglądarkę Edge uwzględnianie nagłówków odpowiedzi, jeśli są dostępne.

Aby używać nagłówków odpowiedzi, ustaw wartość elementu <UseResponseCacheHeaders> na true (prawda). To ustawienie powoduje, że Edge bierze pod uwagę nagłówki odpowiedzi i porównuje je ze zbiorem wartości przez <ExpirySettings>, a potem użyj najmniejszej z nich. Kiedy biorąc pod uwagę nagłówki odpowiedzi, Edge wybiera dostępną wartość zgodnie z opisem w :

Wyobraź sobie na przykład, że odpowiedź jest zapisywana w pamięci podręcznej z tymi wartościami:

  • Brak wartości Cache-Control s-maxage
  • Wartość Cache-Control max-age wynosząca 300
  • Expires – data za 3 dni
  • Wartość <ExpirySettings> TimeoutInSeconds wynosząca 600.

W tym przypadku w parametrze Cache-Control max-age zostanie użyta wartość TTL, ponieważ jest on mniejszy niż wartość <ExpirySettings> oraz ze względu na istnienie brak wartości Cache-Control s-maxage (mającej pierwszeństwo przed max-age).

Konfigurowanie klucza pamięci podręcznej

Podobnie jak w przypadku zasad pamięci podręcznej ogólnego przeznaczenia, takich jak zasada Wypełnij pamięć podręczną, atrybut ResponseCache – użycie elementów <CacheKey> i <Scope> do skonfigurować tworzenie klucza pamięci podręcznej dla wpisów pamięci podręcznej. Dzięki ResponseCache możesz też tworzyć klucze pamięci podręcznej. bardziej przydatnych jest dodanie nagłówków odpowiedzi Accept do par klucz-wartość.

Ogólne informacje o konfigurowaniu kluczy pamięci podręcznej znajdziesz w artykule Praca z kluczami pamięci podręcznej. Dla: Więcej informacji o korzystaniu z nagłówków Accept znajdziesz tutaj: <UseAcceptHeader>.

Informacje o szyfrowaniu pamięci podręcznej

Edge for Public Cloud: pamięć podręczna jest szyfrowana tylko w PCI – i zgodne z HIPAA organizacji non-profit. Szyfrowanie w tych organizacjach jest skonfigurowane podczas organizacji. i udostępnianie danych.

Zmienne przepływu

Poniższe wstępnie zdefiniowane zmienne przepływu są wypełniane przy wykonywaniu zasady ResponseCache. Więcej informacji o zmiennych Flow znajdziesz w dokumentacji zmiennych.

Zmienne Typ Uprawnienie Opis
responsecache.{policy_name}.cachename Ciąg znaków Tylko do odczytu Zwraca pamięć podręczną używaną w zasadzie
responsecache.{policy_name}.cachekey Ciąg znaków Tylko do odczytu Zwraca użyty klucz
responsecache.{policy_name}.cachehit Wartość logiczna Tylko do odczytu Prawda, jeśli zasada została wykonana
responsecache.{policy_name}.invalidentry Wartość logiczna Tylko do odczytu Prawda, jeśli wpis w pamięci podręcznej jest nieprawidłowy

Kody błędów

This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.

Error code prefix

N/A

Runtime errors

This policy does not throw any runtime errors.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidTimeout If the <CacheLookupTimeoutInSeconds> element of the ResponseCache policy is set to a negative number, then the deployment of the API proxy fails.
InvalidCacheResourceReference This error occurs if the <CacheResource> element in a ResponseCache policy is set to a name that does not exist in the environment where the API proxy is being deployed.
ResponseCacheStepAttachmentNotAllowedReq This error occurs if the same ResponseCache policy is attached to multiple request paths within any flows of an API proxy.
ResponseCacheStepAttachmentNotAllowedResp This error occurs if the same ResponseCache policy is attached to multiple response paths within any flows of an API proxy.
InvalidMessagePatternForErrorCode This error occurs if either the <SkipCacheLookup> or the <SkipCachePopulation> element in a ResponseCache policy contains an invalid condition.
CacheNotFound This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component.

Fault variables

N/A

Example error response

N/A

Schemat

Każdy typ zasad jest definiowany przez schemat XML (.xsd). Schematy zasad są dostępne na GitHubie.