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">

W tej tabeli opisano atrybuty wspólne dla wszystkich elementów nadrzędnych zasad:

Atrybut Opis Domyślny Obecność
name

Wewnętrzna nazwa zasady. Wartość atrybutu name może zawierać litery, cyfry, spacje, łączniki, podkreślenia i kropki. Ta wartość nie może przekracza 255 znaków.

Opcjonalnie możesz użyć elementu <DisplayName> do oznaczenia zasady jako edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw jako false, aby w przypadku niepowodzenia zasady zwracany był błąd. To normalne w przypadku większości zasad.

Ustaw jako true, aby wykonywanie przepływu było kontynuowane nawet po zastosowaniu zasady niepowodzenie.

fałsz Opcjonalnie
enabled

Aby egzekwować zasadę, ustaw wartość true.

Aby wyłączyć zasadę, ustaw wartość false. Te zasady nie będą jest wymuszane nawet wtedy, gdy jest ono połączone z przepływem.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

fałsz Wycofano

&lt;DisplayName&gt; element

Używaj oprócz atrybutu name do oznaczania zasady w edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

<DisplayName>Policy Display Name</DisplayName>
Domyślny

Nie dotyczy

Jeśli pominiesz ten element, atrybut name zasady otrzyma wartość .

Obecność Opcjonalnie
Typ Ciąg znaków

&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

W tej sekcji opisujemy komunikaty o błędach i zmienne przepływu ustawiane, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły błędów dla serwera proxy. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Prefiks kodu błędu

Nie dotyczy

Błędy w czasie wykonywania

Ta zasada nie powoduje błędów podczas działania.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidTimeout Jeśli element <CacheLookupTimeoutInSeconds> zasady ResponseCache jest ustawiony na liczbę ujemną, wdrożenie serwera proxy interfejsu API nie powiedzie się.
InvalidCacheResourceReference Ten błąd występuje, jeśli element <CacheResource> w zasadzie ResponseCache jest ustawiony na nazwę, która nie istnieje w środowisku, w którym wdrażany jest serwer proxy interfejsu API.
ResponseCacheStepAttachmentNotAllowedReq Ten błąd występuje, jeśli ta sama zasada ResponseCache jest powiązana z wieloma ścieżkami żądań w dowolnym przepływie serwera proxy interfejsu API.
ResponseCacheStepAttachmentNotAllowedResp Ten błąd występuje, jeśli ta sama zasada ResponseCache jest powiązana z wieloma ścieżkami odpowiedzi w dowolnym przepływie serwera proxy interfejsu API.
InvalidMessagePatternForErrorCode Ten błąd występuje, jeśli element <SkipCacheLookup> lub <SkipCachePopulation> w zasadzie ResponseCache zawiera nieprawidłowy warunek.
CacheNotFound Ten błąd występuje, jeśli pamięć podręczna wymieniona w komunikacie o błędzie nie została utworzona w konkretnym komponencie procesora wiadomości.

Zmienne błędów

Nie dotyczy

Przykładowa odpowiedź na błąd

Nie dotyczy

Schemat

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