Hinzufügen der Zwischenspeicherung zum Verbessern der Leistung in Azure API Management

GILT FÜR: Developer | Basic | Basic v2 | Standard | Standard v2 | Premium

APIs und Vorgänge in API Management können mit dem Zwischenspeichern von Antworten konfiguriert werden. Das Zwischenspeichern von Antworten kann die Latenzzeit für API-Aufrufer und die Back-End-Auslastung für API-Anbieter bedeutend reduzieren.

Wichtig

Der integrierte Cache ist flüchtig und wird von allen Einheiten in derselben Region desselben API Management-Diensts gemeinsam genutzt. Unabhängig vom verwendeten Cache-Typ (intern oder extern) löst der API-Aufruf, der den Cache-bezogenen Vorgang verwendet, keinen Fehler aus, wenn die Cache-bezogenen Vorgänge aufgrund der Flüchtigkeit des Caches oder aus anderen Gründen keine Verbindung zum Cache herstellen können. Der Cache-Vorgang wird erfolgreich abgeschlossen. Bei einem Lesevorgang wird ein NULL-Wert an den aufrufenden Richtlinienausdruck zurückgegeben. Ihr Richtliniencode sollte so konzipiert sein, dass es einen Fallbackmechanismus zum Abrufen von Daten gibt, die nicht im Cache gefunden wurden. Ausführlichere Informationen zum Zwischenspeichern finden Sie unter Richtlinien für API Management-Zwischenspeichern sowie unter Benutzerdefiniertes Zwischenspeichern in Azure API Management.

Zwischenspeicherungsrichtlinien

Sie lernen Folgendes:

  • Hinzufügen des Zwischenspeicherns von Antworten für Ihre API
  • Überprüfen des Zwischenspeicherns in Aktion

Hinweis

Im Tarif Consumption von Azure API Management ist kein interner Cache verfügbar. Sie können stattdessen eine externe Azure Cache for Redis-Instanz verwenden. Sie können auch einen externen Cache in anderen API Management-Dienstebenen konfigurieren.

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

Hinzufügen der Zwischenspeicherungsrichtlinien

Mit den Zwischenspeicherungsrichtlinien in diesem Beispiel gibt die erste Anforderung an den Vorgang GetSpeakers eine Antwort vom Back-End-Dienst zurück. Diese Antwort wird zwischengespeichert und erhält einen Schlüssel, der auf den angegebenen Headern und Abfrageparametern basiert. Bei nachfolgenden Aufrufen der Operation mit denselben Parametern wird die zwischengespeicherte Antwort zurückgegeben, bis das Ablaufintervall abgelaufen ist.

  1. Melden Sie sich beim Azure-Portal an.

  2. Navigieren Sie zu Ihrer APIM-Instanz.

  3. Klicken Sie auf die Registerkarte API.

  4. Klicken Sie in der API-Liste auf Demo Conference API.

  5. Wählen Sie GetSpeakers aus.

  6. Klicken Sie im oberen Seitenbereich auf die Registerkarte Entwurf.

  7. Klicken Sie im Abschnitt Eingehende Verarbeitung auf das Symbol </>.

    Code-Editor

  8. Fügen Sie im Element für den Eingang die folgende Richtlinie hinzu:

    <cache-lookup vary-by-developer="false" vary-by-developer-groups="false">
        <vary-by-header>Accept</vary-by-header>
        <vary-by-header>Accept-Charset</vary-by-header>
        <vary-by-header>Authorization</vary-by-header>
    </cache-lookup>
    
  9. Fügen Sie im Element für den Ausgang die folgende Richtlinie hinzu:

    <cache-store duration="20" />
    

    Dauer gibt das Ablaufintervall der gespeicherten Antworten an. In diesem Beispiel beträgt das Intervall 20 Sekunden.

Tipp

Wenn Sie wie unter Verwenden einer externen Azure Cache for Redis-Instanz in Azure API Management beschrieben einen externen Cache verwenden, empfiehlt es sich ggf., das Attribut caching-type der Cachingrichtlinien anzugeben. Ausführlichere Informationen finden Sie unter Cacherichtlinien für API Management.

Aufrufen einer Operation und Testen der Zwischenspeicherung

Um die Zwischenspeicherung in Aktion zu sehen, können Sie den Vorgang über das Entwicklerportal aufrufen.

  1. Navigieren Sie im Azure-Portal zu Ihrer APIM-Instanz.
  2. Klicken Sie auf die Registerkarte APIs.
  3. Wählen Sie die API aus, der Sie Zwischenspeicherungsrichtlinien hinzugefügt haben.
  4. Wählen Sie den Vorgang GetSpeakers aus.
  5. Klicken Sie im Menü rechts oben auf die Registerkarte Test.
  6. Klicken Sie auf Senden.

Nächste Schritte