Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO: Všechny úrovně služby správy rozhraní API
Nakonfigurujte ukládání do mezipaměti ve službě Azure API Management tak, aby ukládaly a načítaly odpovědi na požadavky rozhraní API a související informace. Uložením odpovědí z back-endových služeb může služba API Management obsluhovat následné stejné požadavky přímo z mezipaměti, což snižuje potřebu opakovaného volání back-endové služby. Ukládání do mezipaměti může zlepšit výkon rozhraní API, snížit zatížení back-endu a vylepšit celkové prostředí zákazníků, kteří volají rozhraní API prostřednictvím služby API Management.
Tento článek vysvětluje možnosti ukládání do mezipaměti ve službě API Management a zdůrazňuje klíčové scénáře a aspekty konfigurace.
Důležité
Ukládání do mezipaměti vyžaduje službu ukládání do mezipaměti – buď interní mezipaměť nasazenou automaticky jako součást služby API Management, nebo externí mezipaměť nasazenou vámi – a konfiguraci zásad ukládání do mezipaměti , aby bylo možné určit, jak se má ukládání do mezipaměti použít u požadavků rozhraní API.
Možnosti služby ukládání do mezipaměti
Azure API Management nabízí následující možnosti služby ukládání do mezipaměti, které splňují různé požadavky na výkon a architekturu.
Interní (integrovaná):: Interní (integrovaná) mezipaměť se automaticky zřizuje ve všech úrovních služby API Management (s výjimkou úrovně Consumption ). Implementace interní mezipaměti se liší mezi úrovněmi Classic (Developer, Basic, Standard a Premium) a úrovněmi v2 (Basic v2, Standard v2 a Premium v2). Integrovaná mezipaměť ve vrstvách v2 poskytuje vyšší spolehlivost. Přečtěte si další informace o ukládání do mezipaměti s integrovanou mezipamětí.
Externí mezipaměť: Pokud chcete zvýšit výkon a trvalost, volitelně nakonfigurujte externí mezipaměť kompatibilní s Redis, jako je Azure Managed Redis, pro použití s libovolnou úrovní služby nebo bránou služby API Management. Přečtěte si další informace o nastavení externí mezipaměti pomocí Azure Managed Redis.
Následující tabulka porovnává možnosti interní a externí mezipaměti.
| Schopnost | Interní | External |
|---|---|---|
| Automatické zřizování a správa | ✔️ | ❌ |
| Přidané náklady | ❌ | ✔️ |
| Vlastní konfigurace | ❌ | ✔️ |
| Dostupnost ve všech úrovních a branách | Není k dispozici ve vrstvě Consumption ani v bráně provozované uživatelem | ✔️ |
| Místní úložiště | Mezipaměť poskytovaná ve stejné oblasti jako instance služby API Management a sdílená mezi jednotkami škálování V nasazení ve více oblastech má každá oblast svou vlastní mezipaměť. |
Závisí na preferencích zákazníka. |
| Trvalé úložiště | Trvalý ve stupních v2. V klasických úrovních (Developer, Basic, Standard a Premium) se obsah mezipaměti neuchovává při aktualizaci služby. |
✔️ |
| Omezení pro jednotlivé úrovně | Velikost mezipaměti se liší podle úrovně služby | Není omezeno |
| Sdílený přístup více instancí služby API Management | ❌ | ✔️ |
| Podpora sémantických ukládání do mezipaměti | ❌ | ✔️ |
| Podpora předběžného načítání a vyprázdnění dat | ❌ | ✔️ |
Scénáře ukládání do mezipaměti
Ukládání do mezipaměti ve službě Azure API Management použijte pro scénáře, jako jsou scénáře v následující tabulce.
| Scenario | Description | Typ mezipaměti | Chování při ztrátě dostupnosti mezipaměti nebo připojení |
|---|---|---|---|
| Optimalizace prostředí klienta | Urychlíte opakované zpracování požadavků pro klienty. | Interní nebo externí | Back-end obsluhuje požadavky a musí zpracovat úplné načtení, pokud mezipaměť není k dispozici. |
| Řízení nákladů a škálování back-endu | Snížení zatížení back-endu a nákladů v případě, že back-end není škálovaný pro úplný provoz | External | Závisí na konfiguraci mezipaměti a služby. Doporučení: Vyberte úroveň služby mezipaměti s nejvyšší spolehlivostí a monitorujte výkon. |
| Úložiště metadat | K uložení libovolných dat do mezipaměti použijte hodnotu úložiště mezipaměti . | Interní nebo externí | Závisí na konfiguraci mezipaměti a služby. |
Considerations:
V jakémkoli scénáři ukládání do mezipaměti zvažte možnost ztráty dostupnosti mezipaměti nebo připojení. Služba API Management využívá přístup "pokud možno" k dostupnosti mezipaměti. Pokud nakonfigurovaná mezipaměť není dostupná, dojde ke zmeškané mezipaměti a ve výchozím nastavení požadavky budou pokračovat do back-endové služby.
V klasických úrovních služby API Management je interní mezipaměť nestálá a neuchovává se napříč aktualizacemi služeb. Během aktualizace služby se interní mezipaměť vymaže v postupném procesu, který zahrnuje až 50% mezipaměti najednou.
Poznámka:
Můžete nakonfigurovat nastavení aktualizace služeb, včetně časového období údržby pro aktualizace, abyste minimalizovali potenciální dopady zákazníků, jako je ztráta interní mezipaměti.
Pokud nakonfigurujete externí mezipaměť, může být trvalá, ale zodpovídáte za zajištění dostupnosti a připojení.
Pokud chcete chránit back-endovou službu před špičkami provozu, které ho můžou přetížit, když není k dispozici mezipaměť, nakonfigurujte zásadu omezování rychlosti (omezení rychlosti nebo omezení rychlosti podle klíče) okamžitě po jakékoli zásadě vyhledávání v mezipaměti.
Zásady ukládání do mezipaměti
Nakonfigurujte zásady ukládání do mezipaměti, abyste mohli řídit, jak se odpovědi rozhraní API ukládají do mezipaměti a načítají ve službě Azure API Management.
Ve výchozím nastavení v zásadách ukládání do mezipaměti služba API Management používá externí mezipaměť, pokud je nakonfigurovaná a v opačném případě se vrátí do integrované mezipaměti.
API Management poskytuje zásady ukládání do mezipaměti ve dvojicích, jak je znázorněno v následující tabulce. V definici zásady nakonfigurujte zásadu vyhledávání mezipaměti v oddílu
inboundtak, aby kontrolovala odpovědi uložené v mezipaměti, a zásady úložiště mezipaměti v oddíluoutboundpro ukládání úspěšných odpovědí do mezipaměti.
| Policies | Description | Usage |
|---|---|---|
| vyhledávání v mezipaměti / ukládání do mezipaměti | – Načtení odpovědi z mezipaměti – Uložení odpovědi v požadavku na mezipaměť |
– Slouží k načtení úplné odpovědi rozhraní API z mezipaměti pro identický GET požadavek. |
| cache-lookup-value / cache-store-value | – Načtení konkrétní hodnoty z mezipaměti – Uložení konkrétní hodnoty v mezipaměti |
– Používá se pro vlastní scénáře ukládání do mezipaměti s konkrétními klíči mezipaměti. |
| azure-openai-semantic-cache-lookup / azure-openai-semantic-cache-store | – Zkontrolujte, jestli v mezipaměti pro požadavek rozhraní API Azure OpenAI existuje séanticky podobná odpověď. – Uložení odpovědi na požadavek rozhraní API Azure OpenAI |
– Slouží k načítání podobných odpovědí na požadavky rozhraní API pro dokončování chatu Azure OpenAI. |
| llm-semantic-cache-lookup / llm-semantic-cache-store | – Zkontrolujte, jestli v mezipaměti pro požadavek rozhraní API LLM existuje séanticky podobná odpověď. – Uložení odpovědi na požadavek rozhraní LLM API |
– Slouží k načítání podobných odpovědí na požadavky rozhraní API pro dokončování chatu LLM. |
Návod
- Zásady pro ukládání položek v mezipaměti zahrnují
durationatribut, který určuje, jak dlouho položka uložená v mezipaměti přetrvává. - Pomocí funkce cache-remove-value odeberte konkrétní hodnotu určenou klíčem z mezipaměti.
Příklady zásad ukládání do mezipaměti
Tady jsou základní příklady zásad ukládání do mezipaměti ve službě API Management. Další příklady najdete v článcích s referenčními informacemi o zásadách ukládání do mezipaměti .
Ukládání odpovědí do mezipaměti
Uložte kompletní odpověď API do interní mezipaměti, aby mohla obsluhovat identické požadavky bez volání na back-end. V tomto příkladu ukládá mezipaměť odpovědi po dobu sedmi dnů.
<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>
Ukládání hodnot do mezipaměti
Ukládání konkrétních hodnot dat do mezipaměti pro opakované použití napříč více požadavky
<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>
Ochrana omezování rychlosti
Osvědčeným postupem je kombinovat vyhledávání mezipaměti s omezováním rychlosti za účelem ochrany back-endových služeb.
<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>
Bezpečnostní aspekty
- Citlivá data: Vyhněte se ukládání odpovědí do mezipaměti obsahující citlivé nebo osobní údaje
- Klíče mezipaměti: Ujistěte se, že klíče mezipaměti nezpřístupňují citlivé informace v protokolech nebo diagnostice.
- Řízení přístupu: Externí mezipaměť vyžaduje správné zabezpečení sítě a řízení přístupu.
- Šifrování: Použití protokolu TLS/SSL pro připojení k instancím externí mezipaměti
Související obsah
- Další informace o zásadách mezipaměti ve službě API Management
- Nastavení externího ukládání do mezipaměti pomocí Azure Managed Redis
- Příklady vlastního ukládání do mezipaměti s pokročilými scénáři
- Monitorování výkonu služby API Management a metrik ukládání do mezipaměti