Sdílet prostřednictvím


Přehled ukládání do mezipaměti

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 inbound tak, aby kontrolovala odpovědi uložené v mezipaměti, a zásady úložiště mezipaměti v oddílu outbound pro 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í duration atribut, 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