Megosztás a következőn keresztül:


Gyorsítótárazás áttekintése

Alkalmazható minden API Management-szintre

Gyorsítótárazást konfigurálhat az Azure API Managementben az API-kérésekre és a kapcsolódó információkra adott válaszok tárolására és lekérésére. A háttérszolgáltatásokból érkező válaszok tárolásával az API Management közvetlenül a gyorsítótárból tudja kiszolgálni az ezt követő azonos kéréseket, így nem kell többször meghívnia a háttérszolgáltatást. A gyorsítótárazás javíthatja az API teljesítményét, csökkentheti a háttérbetöltést, és javíthatja az API-kat hívó ügyfelek általános élményét az API Management használatával.

Ez a cikk az API Management gyorsítótárazási lehetőségeit ismerteti, és kiemeli a legfontosabb forgatókönyveket és konfigurációs szempontokat.

Fontos

A gyorsítótárazáshoz szükség van egy gyorsítótárazási szolgáltatásra – vagy az API Management szolgáltatás részeként automatikusan üzembe helyezett belső gyorsítótárra, vagy egy Ön által üzembe helyezett külső gyorsítótárra –, valamint a gyorsítótárazási szabályzatok konfigurálására , hogy meg lehessen határozni, hogyan kell gyorsítótárazást alkalmazni az API-kérésekre.

Gyorsítótárazási szolgáltatás beállításai

Az Azure API Management a következő gyorsítótárazási szolgáltatási lehetőségeket kínálja a különböző teljesítmény- és architektúrakövetelmények teljesítéséhez.

  • Belső (beépített): A belső (beépített) gyorsítótár automatikusan ki van építve minden API Management szolgáltatásszinten (kivéve a használati szintet). A belső gyorsítótár-implementáció különbözik a klasszikus szintek (Fejlesztői, Alapszintű, Standard és Prémium) és a v2-szintek (Alapszintű v2, Standard v2 és Prémium v2) között. A beépített gyorsítótár a v2-szintekben fokozott megbízhatóságot biztosít. További információ a beépített gyorsítótár használatáról.

  • Külső gyorsítótár: A nagyobb teljesítmény és adatmegőrzés érdekében szükség esetén konfiguráljon egy külső Redis-kompatibilis gyorsítótárat, például az Azure Managed Redist, hogy bármilyen API Management szolgáltatásszinttel vagy átjáróval használható legyen. További információ a külső gyorsítótár beállításáról az Azure Managed Redis használatával.

Az alábbi táblázat a belső és a külső gyorsítótár képességeit hasonlítja össze.

Capability Belső External
Automatikus kiépítés és kezelés ✔️
Hozzáadott költség ✔️
Egyéni konfiguráció ✔️
Rendelkezésre állás az összes szinten és átjáróban Nem érhető el a használati szint vagy a saját üzemeltetésű átjáró ✔️
Regionális tárolás A gyorsítótár az API Management példánnyal megegyező régióban van biztosítva, és megosztott a skálázási egységek között.

Többrégiós üzembe helyezés esetén minden régió saját gyorsítótárral rendelkezik.
Az ügyfél előnyben részesítésétől függ
Állandó tárterület Tartós a v2 szinteken.

A klasszikus (fejlesztői, alapszintű, standard és prémium) szinteken a gyorsítótár tartalma nem marad meg a szolgáltatásfrissítések végrehajtásakor.
✔️
Rétegenkénti korlátok A gyorsítótár mérete szolgáltatási szint szerint változik Nincs korlátozva
Több API Management-példány közös hozzáférése ✔️
Szemantikai gyorsítótárazás támogatása ✔️
Adatbetöltés és -törlés támogatása ✔️

Gyorsítótárazási forgatókönyvek

Használja a gyorsítótárazást az Azure API Managementben olyan forgatókönyvekhez, mint az alábbi táblázatban szereplők.

Scenario Description Gyorsítótár típusa A gyorsítótár rendelkezésre állásának vagy kapcsolatának elvesztésével kapcsolatos viselkedés
Ügyfélélmény optimalizálása Az ügyfelek ismétlődő kérésfeldolgozásának felgyorsítása. Belső vagy külső A háttérrendszer kéréseket szolgál ki, és teljes terhelést kell kezelnie, ha a gyorsítótár nem érhető el.
Költségek és háttérbeli skálázás szabályozása Csökkentse a háttérbetöltést és a költségeket, ha a háttérrendszer nincs teljes forgalomra skálázva. External A gyorsítótár és a szolgáltatás konfigurációjától függ. Javaslat: Válasszon ki egy gyorsítótár-szolgáltatási szintet, amely a legnagyobb megbízhatósággal és a monitorozási teljesítménnyel rendelkezik.
Metaadattár A gyorsítótár-tároló érték használatával tetszőleges adatokat tárolhat a gyorsítótárban. Belső vagy külső A gyorsítótár és a szolgáltatás konfigurációjától függ.

Considerations:

  • Bármilyen gyorsítótárazási forgatókönyv esetén vegye figyelembe a gyorsítótár rendelkezésre állásának vagy kapcsolatának esetleges elvesztését. Az API Management a gyorsítótár elérhetőségére "legjobb szándékú" megközelítést alkalmaz. Ha egy konfigurált gyorsítótár nem érhető el, a gyorsítótár nem jelenik meg, és alapértelmezés szerint a kérések továbbra is a háttérszolgáltatáshoz kerülnek.

  • A klasszikus API Management-szinteken a belső gyorsítótár változékony, és nem marad fenn a szolgáltatásfrissítések között. Szolgáltatásfrissítés során a belső gyorsítótár fokozatosan törlődik, alkalmanként legfeljebb a gyorsítótár 50%-a kerül törlésre.

    Megjegyzés:

    Konfigurálhatja a szolgáltatásfrissítési beállításokat, beleértve a frissítések karbantartási időszakát is, hogy minimalizálja a potenciális ügyfélhatásokat, például a belső gyorsítótár elvesztését.

  • Ha konfigurál egy külső gyorsítótárat, az állandó lehet, de ön a felelős a rendelkezésre állás és a kapcsolat biztosításáért.

  • Ha meg szeretné védeni a háttérszolgáltatást azoktól a forgalomcsúcsoktól, amelyek túlterhelhetik azt, ha a gyorsítótár nem érhető el, konfiguráljon egy sebességkorlátozó szabályzatot (sebességkorlátozó vagy sebességkorlátozási kulcs szerint) közvetlenül a gyorsítótár-keresési szabályzatok után.

Gyorsítótárazási szabályzatok

Gyorsítótárazási szabályzatok konfigurálása az API-válaszok gyorsítótárazásának és lekérésének szabályozásához az Azure API Managementben.

  • A gyorsítótárazási szabályzatokban alapértelmezés szerint az API Management külső gyorsítótárat használ, ha konfigurálva van, és egyébként visszaesik a beépített gyorsítótárba.

  • Az API Management párokban biztosít gyorsítótárazási szabályzatokat, ahogy az az alábbi táblázatban is látható. A szabályzatdefiníciókban konfiguráljon egy gyorsítótár-keresési szabályzatot a szakaszban a inbound gyorsítótárazott válaszok ellenőrzéséhez, a szakaszban pedig egy gyorsítótár-tárolási szabályzatot outbound a sikeres válaszok gyorsítótárban való tárolásához.

Szabályzatok Description Usage
gyorsítótár-keresés / gyorsítótár-tároló – Válasz lekérése a gyorsítótárból
– Válasz tárolása a gyorsítótár-kérelemben
– Teljes API-válasz lekérésére használható a gyorsítótárból egy azonos GET kéréshez
cache-keresés-érték / cache-tárolás-érték – Adott érték lekérése a gyorsítótárból
- Egy adott érték tárolása a gyorsítótárban
– Egyéni gyorsítótárazási forgatókönyvekhez használható adott gyorsítótárkulcsokkal
azure-openai-szemantic-cache-lookup / azure-openai-szemantic-cache-store – Ellenőrizze, hogy létezik-e szemantikailag hasonló válasz egy Azure OpenAI API-kérés gyorsítótárában
– Válasz tárolása egy Azure OpenAI API-kéréshez
– Hasonló válaszok lekérésére használható az Azure OpenAI Chat Completion API-kérésekre
llm-semantic-cache-lookup / llm-semantic-cache-store – Ellenőrizze, hogy létezik-e szemantikailag hasonló válasz a gyorsítótárban egy LLM API-kéréshez
– Válasz tárolása LLM API-kéréshez
– Hasonló válaszok lekérésére használható az LLM Csevegés befejezése API-kérésekre

Jótanács

  • A gyorsítótárban lévő bejegyzések tárolására vonatkozó szabályzatok tartalmaznak egy duration attribútumot, amely meghatározza, hogy a gyorsítótárazott bejegyzés mennyi ideig marad meg.
  • A gyorsítótár-eltávolítás érték használatával eltávolíthat egy, a kulcs által azonosított értéket a gyorsítótárból.

Gyorsítótárazási szabályzatok példái

Az alábbiakban alapvető példákat láthat az API Management gyorsítótárazási szabályzataira. További példákért tekintse meg a gyorsítótárazási szabályzat referenciacikkeit.

Válasz gyorsítótárazása

Gyorsítótárazza a teljes API-választ a belső gyorsítótárban az azonos kérések háttérhívások nélküli kiszolgálásához. Ebben a példában a gyorsítótár hét napig tárolja a válaszokat.

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

Érték gyorsítótárazása

Adott adatértékek gyorsítótárazása több kérelemben való újrafelhasználáshoz.

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

Sebességkorlátozó védelem

Ajánlott eljárásként kombinálja a gyorsítótár-keresést a sebességkorlátozással a háttérszolgáltatások védelme érdekében.

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

Biztonsági szempontok

  • Bizalmas adatok: A bizalmas vagy személyes adatokat tartalmazó válaszok gyorsítótárazásának elkerülése
  • Gyorsítótárkulcsok: Győződjön meg arról, hogy a gyorsítótárkulcsok nem teszik elérhetővé a naplókban vagy a diagnosztika során bizalmas információkat
  • Hozzáférés-vezérlés: A külső gyorsítótár megfelelő hálózati biztonságot és hozzáférés-vezérlést igényel
  • Titkosítás: TLS/SSL használata külső gyorsítótárpéldányokhoz való kapcsolatokhoz