Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: Wszystkich poziomów zarządzania API
Konfigurowanie buforowania w usłudze Azure API Management w celu przechowywania i pobierania odpowiedzi na żądania interfejsu API i powiązanych informacji. Dzięki przechowywaniu odpowiedzi z usług zaplecza usługa API Management może obsługiwać kolejne identyczne żądania bezpośrednio z pamięci podręcznej, co zmniejsza konieczność wielokrotnego wywoływania usługi zaplecza. Buforowanie może poprawić wydajność interfejsu API, zmniejszyć obciążenie zaplecza i poprawić ogólne doświadczenie klientów wywołujących interfejsy API poprzez zarządzanie API.
W tym artykule opisano opcje buforowania w usłudze API Management oraz najważniejsze scenariusze i zagadnienia dotyczące konfiguracji.
Ważne
Buforowanie wymaga zarówno usługi buforowania — wewnętrznej pamięci podręcznej wdrożonej automatycznie w ramach usługi API Management lub zewnętrznej pamięci podręcznej wdrożonej przez Użytkownika — oraz konfiguracji zasad buforowania w celu określenia sposobu stosowania buforowania do żądań interfejsu API.
Opcje usługi buforowania
Usługa Azure API Management udostępnia następujące opcje usługi buforowania, aby spełnić różne wymagania dotyczące wydajności i architektury.
Wewnętrzna (wbudowana): Wewnętrzna (wbudowana) pamięć podręczna jest automatycznie udostępniana we wszystkich poziomach usługi API Management (z wyjątkiem poziomu Zużycia). Implementacja wewnętrznej pamięci podręcznej różni się między warstwami klasycznymi (Developer, Basic, Standard i Premium) a warstwami v2 (Basic v2, Standard v2 i Premium v2). Wbudowana pamięć podręczna w warstwach v2 zapewnia zwiększoną niezawodność. Dowiedz się więcej o buforowaniu za pomocą wbudowanej pamięci podręcznej.
Zewnętrzna pamięć podręczna: w celu zwiększenia wydajności i trwałości opcjonalnie skonfiguruj zewnętrzną pamięć podręczną zgodną z usługą Redis, taką jak Azure Managed Redis, do użycia z dowolną warstwą usługi lub bramą usługi API Management. Dowiedz się więcej o konfigurowaniu zewnętrznej pamięci podręcznej za pomocą usługi Azure Managed Redis.
W poniższej tabeli porównaliśmy możliwości wewnętrznej i zewnętrznej pamięci podręcznej.
| Capability | Wewnętrzny | External |
|---|---|---|
| Automatyczne udostępnianie i zarządzanie | ✔️ | ❌ |
| Dodatkowy koszt | ❌ | ✔️ |
| Konfiguracja niestandardowa | ❌ | ✔️ |
| Dostępność we wszystkich warstwach i bramach | Niedostępne w poziomie Zużycie lub bramie samodzielnie hostowanej | ✔️ |
| Regionalne przechowywanie | Pamięć podręczna jest dostępna w tym samym regionie co instancja usługi API Management i jest współdzielona między jednostkami skalowalnymi. We wdrożeniu obejmującym wiele regionów każdy region ma własną pamięć podręczną. |
Zależy od preferencji klienta |
| Trwała pamięć | Trwałe w warstwach w wersji w2. W warstwach klasycznych (Deweloper, Podstawowa, Standardowa i Premium) zawartość pamięci podręcznej nie jest zachowywana w przypadku aktualizacji usługi. |
✔️ |
| Limity dla warstwy | Rozmiar pamięci podręcznej różni się w zależności od warstwy usługi | Nie ograniczone |
| Dostęp współużytkowany przez wiele wystąpień usługi API Management | ❌ | ✔️ |
| Obsługa buforowania semantycznego | ❌ | ✔️ |
| Obsługa wstępnego ładowania i przeczyszczania danych | ❌ | ✔️ |
Scenariusze buforowania
Buforowanie w usłudze Azure API Management można używać w scenariuszach, takich jak te w poniższej tabeli.
| Scenario | Description | Typ pamięci podręcznej | Zachowanie przy utracie dostępności pamięci podręcznej lub łączności |
|---|---|---|---|
| Optymalizowanie środowiska klienta | Przyspieszanie powtarzalnego przetwarzania żądań dla klientów. | Wewnętrzne lub zewnętrzne | Zaplecze obsługuje żądania i musi obsługiwać pełne obciążenie, jeśli pamięć podręczna jest niedostępna. |
| Kontrolowanie kosztów i skalowania zaplecza | Zmniejsz obciążenie zaplecza i koszty, gdy zaplecze nie jest skalowane pod kątem pełnego ruchu. | External | Zależy od konfiguracji pamięci podręcznej i usługi. Zalecenie: wybierz warstwę usługi pamięci podręcznej z najwyższą niezawodnością i monitoruj wydajność. |
| Magazyn metadanych | Użyj wartości magazynu pamięci podręcznej do przechowywania dowolnych danych w pamięci podręcznej. | Wewnętrzne lub zewnętrzne | Zależy od konfiguracji pamięci podręcznej i usługi. |
Considerations:
W każdym scenariuszu buforowania należy wziąć pod uwagę możliwość utraty dostępności pamięci podręcznej lub łączności. Usługa API Management korzysta z podejścia "najlepszego wysiłku" do buforowania dostępności. Jeśli skonfigurowana pamięć podręczna nie jest dostępna, występują błędy pamięci podręcznej i domyślnie żądania będą nadal kierowane do usługi zaplecza.
W warstwach klasycznych usługi API Management wewnętrzna pamięć podręczna jest niestabilna i nie jest utrwalana w aktualizacjach usługi. Podczas aktualizacji usługi wewnętrzna pamięć podręczna jest czyszczone w procesie stopniowym, który obejmuje maksymalnie 50% pamięci podręcznej naraz.
Uwaga / Notatka
Możesz skonfigurować ustawienia aktualizacji usługi, w tym okno konserwacyjne dla aktualizacji, aby zminimalizować potencjalne wpływy na klientów, takie jak utrata wewnętrznej pamięci podręcznej.
Jeśli skonfigurujesz zewnętrzną pamięć podręczną, może to być trwałe, ale odpowiadasz za zapewnienie dostępności i łączności.
Aby chronić usługę zaplecza przed skokami ruchu, które mogą ją przeciążać, gdy pamięć podręczna jest niedostępna, skonfiguruj zasady ograniczania szybkości (rate-limit lub rate-limit-by-key) natychmiast po wszelkich zasadach wyszukiwania w pamięci podręcznej.
Zasady buforowania
Konfigurowanie zasad buforowania w celu kontrolowania sposobu buforowania i pobierania odpowiedzi interfejsu API w usłudze Azure API Management.
Domyślnie usługa API Management w zasadach buforowania używa zewnętrznej pamięci podręcznej, jeśli jest skonfigurowana, w przeciwnym razie używa wbudowanej pamięci podręcznej.
Usługa API Management udostępnia zasady buforowania w parach, jak pokazano w poniższej tabeli. W definicji zasad skonfiguruj zasady wyszukiwania pamięci podręcznej w
inboundsekcji w celu sprawdzenia odpowiedzi w pamięci podręcznej oraz zasad magazynu pamięci podręcznej woutboundsekcji w celu przechowywania pomyślnych odpowiedzi w pamięci podręcznej.
| Policies | Description | Usage |
|---|---|---|
| wyszukiwanie w / pamięci podręcznejmagazyn pamięci podręcznej | — Pobieranie odpowiedzi z pamięci podręcznej — Przechowywanie odpowiedzi w żądaniu pamięci podręcznej |
— Służy do pobierania pełnej odpowiedzi interfejsu API z pamięci podręcznej dla identycznego GET żądania |
| wyszukiwanie-wartości-w-cache / przechowywanie-wartości-w-cache | — Pobieranie określonej wartości z pamięci podręcznej — Przechowywanie określonej wartości w pamięci podręcznej |
— Służy do obsługi niestandardowych scenariuszy buforowania z określonymi kluczami pamięci podręcznej |
| azure-openai-semantic-cache-lookup / azure-openai-semantic-cache-store | — Sprawdź, czy w pamięci podręcznej istnieje semantycznie podobna odpowiedź dla żądania do interfejsu API usługi Azure OpenAI Zapisz odpowiedź dla żądania interfejsu API usługi Azure OpenAI |
— Służy do uzyskiwania podobnych odpowiedzi na żądania interfejsu API do uzupełniania czatu Azure OpenAI |
| llm-semantic-cache-lookup / llm-semantic-cache-store | — Sprawdź, czy w pamięci podręcznej istnieje semantycznie podobna odpowiedź dla żądania interfejsu API LLM Przechowaj odpowiedź na żądanie API LLM |
— Służy do pobierania podobnych odpowiedzi do żądań interfejsu API uzupełniania czatów LLM |
Wskazówka
- Zasady przechowywania wpisów w pamięci podręcznej zawierają atrybut określający
durationczas przechowywania buforowanego wpisu. - Użyj funkcji cache-remove-value , aby usunąć określoną wartość zidentyfikowaną przez klucz z pamięci podręcznej.
Przykłady zasad buforowania
Poniżej przedstawiono podstawowe przykłady zasad buforowania w usłudze API Management. Aby uzyskać więcej przykładów, zobacz artykuły referencyjne polityki buforowania.
Buforowanie odpowiedzi
Buforowanie pełnej odpowiedzi interfejsu API w wewnętrznej pamięci podręcznej w celu obsługi identycznych żądań bez wywołań zaplecza. W tym przykładzie pamięć podręczna przechowuje odpowiedzi przez siedem dni.
<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="604800" />
<base />
</outbound>
</policies>
Buforowanie wartości
Buforuj określone wartości danych do ponownego użycia w wielu żądaniach.
<policies>
<inbound>
<cache-lookup-value key="user-preferences" default-value="none" variable-name="preferences" />
<choose>
<when condition="@(context.Variables["preferences"].ToString() == "none")">
<!-- Load preferences from backend -->
<send-request mode="new" response-variable-name="prefsResponse">
<set-url>https://backend.api/user/preferences</set-url>
</send-request>
<cache-store-value key="user-preferences" value="@(((IResponse)context.Variables["prefsResponse"]).Body.As<string>())" duration="1800" />
</when>
</choose>
</inbound>
</policies>
Ochrona limitowania przepustowości
Najlepszym rozwiązaniem jest łączenie wyszukiwania pamięci podręcznej z ograniczaniem szybkości w celu ochrony usług zaplecza.
<policies>
<inbound>
<cache-lookup-value key="@("data-" + context.Request.IpAddress)" variable-name="cachedData" />
<choose>
<when condition="@(!context.Variables.ContainsKey("cachedData"))">
<rate-limit calls="10" renewal-period="60" />
<!-- Proceed to backend -->
</when>
<otherwise>
<!-- Return cached data without rate limiting -->
<return-response>
<set-body>@((string)context.Variables["cachedData"])</set-body>
</return-response>
</otherwise>
</choose>
</inbound>
</policies>
Zagadnienia dotyczące zabezpieczeń
- Dane poufne: unikaj buforowania odpowiedzi zawierających poufne lub osobiste informacje
- Klucze pamięci podręcznej: upewnij się, że klucze pamięci podręcznej nie uwidacznia poufnych informacji w dziennikach lub diagnostyce
- Kontrola dostępu: Zewnętrzna pamięć podręczna wymaga odpowiednich zabezpieczeń sieci i kontroli dostępu
- Szyfrowanie: użyj protokołu TLS/SSL dla połączeń z wystąpieniami zewnętrznej pamięci podręcznej
Treści powiązane
- Dowiedz się więcej o zasadach pamięci podręcznej w usłudze API Management
- Konfigurowanie zewnętrznego buforowania za pomocą usługi Azure Managed Redis
- Niestandardowe przykłady buforowania z zaawansowanymi scenariuszami
- Monitoruj metryki wydajności i buforowania usługi API Management