Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR: Alle API Management-Ebenen
Konfigurieren Sie die Zwischenspeicherung in Azure API Management, um Antworten auf API-Anforderungen und zugehörige Informationen zu speichern und abzurufen. Durch das Speichern von Antworten aus Back-End-Diensten kann die API-Verwaltung nachfolgende identische Anforderungen direkt aus dem Cache verarbeiten, wodurch die Notwendigkeit reduziert wird, den Back-End-Dienst wiederholt aufzurufen. Die Zwischenspeicherung kann die API-Leistung verbessern, die Back-End-Auslastung reduzieren und die Gesamterfahrung von Kunden verbessern, die APIs über die API-Verwaltung aufrufen.
In diesem Artikel werden die Zwischenspeicherungsoptionen in der API-Verwaltung erläutert und wichtige Szenarien und Konfigurationsaspekte erläutert.
Von Bedeutung
Die Zwischenspeicherung erfordert sowohl einen Zwischenspeicherungsdienst – entweder einen internen Cache, der automatisch als Teil des API-Verwaltungsdiensts bereitgestellt wird, als auch einen externen Cache, der von Ihnen bereitgestellt wird, und die Konfiguration von Zwischenspeicherungsrichtlinien , um anzugeben, wie die Zwischenspeicherung auf API-Anforderungen angewendet werden soll.
Optionen für den Cachedienst
Azure API Management bietet die folgenden Optionen für den Cachedienst, um unterschiedliche Leistungs- und Architekturanforderungen zu erfüllen.
Interner (integrierter) Cache: Der interne (integrierte) Cache wird automatisch in allen API-Verwaltungsdienstebenen (mit Ausnahme der Verbrauchsstufe ) bereitgestellt. Die interne Cacheimplementierung unterscheidet sich zwischen den klassischen Ebenen (Entwickler, Basic, Standard und Premium) und den v2-Ebenen (Basic v2, Standard v2 und Premium v2). Der integrierte Cache in den v2-Ebenen bietet eine verbesserte Zuverlässigkeit. Erfahren Sie mehr über das Zwischenspeichern mit dem integrierten Cache.
Externer Cache: Um die Leistung und Persistenz zu verbessern, konfigurieren Sie optional einen externen rediskompatiblen Cache, z. B. azure Managed Redis, für die Verwendung mit einer beliebigen API-Verwaltungsdienstebene oder einem Gateway. Erfahren Sie mehr über das Einrichten eines externen Caches mit azure Managed Redis.
In der folgenden Tabelle werden die Funktionen des internen und externen Caches verglichen.
| Fähigkeit | Intern | External |
|---|---|---|
| Automatische Bereitstellung und Verwaltung | ✔️ | ❌ |
| Zusätzliche Kosten | ❌ | ✔️ |
| Benutzerdefinierte Konfiguration | ❌ | ✔️ |
| Verfügbarkeit in allen Ebenen und Gateways | Nicht in Verbrauchsebene oder selbst-gehostetem Gateway verfügbar | ✔️ |
| Regionaler Speicher | Cache, der in derselben Region wie API-Verwaltungsinstanz bereitgestellt wird und zwischen Skalierungseinheiten gemeinsam genutzt wird. In einer Bereitstellung mit mehreren Regionen verfügt jede Region über einen eigenen Cache. |
Hängt von der Kundenpräferenz ab |
| Beständiger Speicher | Beständig in v2-Ebenen. In klassischen Ebenen (Developer, Basic, Standard und Premium) werden Cacheinhalte nicht beibehalten, wenn Dienstupdates stattfinden. |
✔️ |
| Grenzwerte pro Ebene | Die Cachegröße variiert je nach Dienstebene. | Nicht beschränkt |
| Freigegebener Zugriff durch mehrere API-Verwaltungsinstanzen | ❌ | ✔️ |
| Unterstützung für die semantische Zwischenspeicherung | ❌ | ✔️ |
| Unterstützung für Das Vorabladen und Löschen von Daten | ❌ | ✔️ |
Zwischenspeicherungsszenarien
Verwenden Sie die Zwischenspeicherung in Azure API Management für Szenarien wie die in der folgenden Tabelle.
| Scenario | Description | Cachetyp | Verhalten bei Verlust der Cacheverfügbarkeit oder Konnektivität |
|---|---|---|---|
| Optimieren der Clienterfahrung | Beschleunigen Sie die wiederholte Anforderungsverarbeitung für Kunden. | Intern oder extern | Back-End dient Anforderungen und muss die vollständige Last verarbeiten, wenn der Cache nicht verfügbar ist. |
| Steuerung von Kosten und Back-End-Skalierung | Reduzieren Sie die Back-End-Auslastung und -Kosten, wenn das Back-End nicht für den vollständigen Datenverkehr skaliert wird. | External | Hängt von der Cache- und Dienstkonfiguration ab. Empfehlung: Wählen Sie eine Cachedienstebene mit höchster Zuverlässigkeit aus, und überwachen Sie die Leistung. |
| Metadatenspeicher | Verwenden Sie cache-store-value , um beliebige Daten im Cache zu speichern. | Intern oder extern | Hängt von der Cache- und Dienstkonfiguration ab. |
Überlegungen:
Berücksichtigen Sie in jedem Zwischenspeicherungsszenario die Möglichkeit des Verlusts der Cacheverfügbarkeit oder Konnektivität. Die API-Verwaltung verwendet einen "best effort"-Ansatz für die Cacheverfügbarkeit. Wenn kein konfigurierter Cache verfügbar ist, treten Cachefehler auf, und standardmäßig werden Anforderungen weiterhin an den Back-End-Dienst übergeben.
In den klassischen Ebenen der API-Verwaltung ist der interne Cache veränderlich und wird nicht über Dienstupdates hinweg beibehalten. Während eines Dienstupdates wird der interne Cache in einem schrittweisen Prozess gelöscht, der bis zu 50% des Caches gleichzeitig umfasst.
Hinweis
Sie können Dienstupdateeinstellungen, einschließlich eines Wartungsfensters für Updates, konfigurieren, um potenzielle Kundenauswirkungen wie z. B. den Verlust des internen Caches zu minimieren.
Wenn Sie einen externen Cache konfigurieren, kann er dauerhaft sein, aber Sie sind dafür verantwortlich, die Verfügbarkeit und Konnektivität sicherzustellen.
Um den Back-End-Dienst vor Datenverkehrsspitzen zu schützen, die ihn möglicherweise überladen, wenn ein Cache nicht verfügbar ist, konfigurieren Sie eine Richtlinie zur Begrenzung der Rate (Rate-Limit oder Rate-Limit-by-Key) unmittelbar nach jeder Cache-Nachschlagerichtlinie.
Zwischenspeicherungsrichtlinien
Konfigurieren Sie Zwischenspeicherungsrichtlinien, um zu steuern, wie API-Antworten zwischengespeichert und in Azure API Management abgerufen werden.
Standardmäßig wird in Zwischenspeichernrichtlinien für API Management ein externer Cache verwendet, falls konfiguriert, und ein Failback auf den integrierten Cache durchgeführt.
Die API-Verwaltung stellt Zwischenspeicherungsrichtlinien in Paaren bereit, wie in der folgenden Tabelle dargestellt. Konfigurieren Sie in einer Richtliniendefinition eine Cache-Nachschlagerichtlinie im
inboundAbschnitt, um nach zwischengespeicherten Antworten zu suchen, und eine Cachespeicherrichtlinie imoutboundAbschnitt, um erfolgreiche Antworten im Cache zu speichern.
| Politik | Description | Usage |
|---|---|---|
| Cache-Nachschlagevorgang / Cachespeicher | – Abrufen einer Antwort aus dem Cache – Speichern einer Antwort in der Cacheanforderung |
– Dient zum Abrufen einer vollständigen API-Antwort aus dem Cache für eine identische GET Anforderung |
| Cache-Nachschlagewert / Cachespeicherwert | – Abrufen eines bestimmten Werts aus dem Cache – Speichern eines bestimmten Werts im Cache |
– Verwendung für benutzerdefinierte Cacheszenarien mit bestimmten Cacheschlüsseln |
| Azure-openai-semantic-cache-lookup / azure-openai-semantic-cache-store | – Überprüfen, ob eine semantisch ähnliche Antwort im Cache für eine Azure OpenAI-API-Anforderung vorhanden ist – Speichern einer Antwort für eine Azure OpenAI-API-Anforderung |
– Dient zum Abrufen ähnlicher Antworten auf Azure OpenAI-Chat-Abschluss-API-Anforderungen |
| llm-semantic-cache-lookup / llm-semantic-cache-store | – Überprüfen, ob eine semantisch ähnliche Antwort im Cache für eine LLM-API-Anforderung vorhanden ist – Speichern einer Antwort für eine LLM-API-Anforderung |
– Wird zum Abrufen ähnlicher Antworten auf LLM-Chat-Vervollständigungs-API-Anforderungen verwendet |
Tipp
- Richtlinien zum Speichern von Einträgen im Cache enthalten ein
durationAttribut, um anzugeben, wie lange ein zwischengespeicherter Eintrag beibehalten wird. - Verwenden Sie cache-remove-value , um einen bestimmten Wert zu entfernen, der vom Schlüssel aus dem Cache identifiziert wird.
Beispiele für Caching-Richtlinien
Im Folgenden sind grundlegende Beispiele für Zwischenspeicherungsrichtlinien in der API-Verwaltung aufgeführt. Weitere Beispiele finden Sie in den Referenzartikeln zur Zwischenspeicherungsrichtlinie .
Zwischenspeichern von Antworten
Vollständige API-Antwort im internen Cache zwischenspeichern, um identische Anforderungen ohne Back-End-Aufrufe zu verarbeiten. In diesem Beispiel speichert der Cache Antworten sieben Tage lang.
<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>
Wertzwischenspeicherung
Zwischenspeichern bestimmter Datenwerte für die Wiederverwendung über mehrere Anforderungen hinweg.
<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>
Schutz durch Ratenbegrenzung
Kombinieren Sie als bewährte Methode die Cachesuche mit der Ratebegrenzung zum Schutz von Back-End-Diensten.
<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>
Sicherheitsüberlegungen
- Vertrauliche Daten: Vermeiden des Zwischenspeicherns von Antworten, die vertrauliche oder persönliche Informationen enthalten
- Cacheschlüssel: Sicherstellen, dass Cacheschlüssel keine vertraulichen Informationen in Protokollen oder Diagnosen verfügbar machen
- Zugriffssteuerung: Für den externen Cache sind geeignete Netzwerksicherheits- und Zugriffssteuerungen erforderlich.
- Verschlüsselung: Verwenden von TLS/SSL für Verbindungen mit externen Cacheinstanzen
Verwandte Inhalte
- Weitere Informationen zu Cacherichtlinien in der API-Verwaltung
- Einrichten der externen Zwischenspeicherung mit azure Managed Redis
- Beispiele für benutzerdefinierte Zwischenspeicherung mit erweiterten Szenarien
- Überwachen der Api-Verwaltungsleistung und Zwischenspeicherungsmetriken