Aktivieren von API-Caching für verbesserte Reaktionsfähigkeit - Amazon API Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktivieren von API-Caching für verbesserte Reaktionsfähigkeit

Sie können API-Caching in Amazon API Gateway aktivieren, um die Antworten Ihres Endpunkts zu cachen. Mit Caching können Sie die Anzahl der an Ihren Endpunkt gemachten Aufrufe verringern und die Latenz der Anforderungen an Ihre API verbessern.

Wenn Sie das Caching für eine Stufe aktivieren, speichert API Gateway Antworten von Ihrem Endpunkt für einen bestimmten Zeitraum time-to-live (TTL) in Sekunden zwischen. Anschließend beantwortet API Gateway die Anfrage, indem es die Endpunkt-Antwort aus dem Cache ausliest, anstatt eine Anfrage an Ihren Endpunkt zu senden. Der Standard-TTL-Wert für API-Caching ist 300 Sekunden. Die maximale TTL-Wert ist 3.600 Sekunden. TTL = 0 bedeutet, dass die Zwischenspeicherung deaktiviert ist.

Anmerkung

Caching ist die sinnvollste Tätigkeit. Sie können die CacheMissCount Metriken CacheHitCount und in Amazon verwenden, CloudWatch um Anfragen zu überwachen, die API Gateway aus dem API-Cache bedient.

Die maximale Größe einer Antwort, die zwischengespeichert werden kann, ist 1 048 576 Bytes. Die Cache-Datenverschlüsselung kann die Größe der Antwort erhöhen, wenn sie zwischengespeichert wird.

Dies ist ein HIPAA-berechtigter Service. Weitere Informationen zu AWS, dem Health Insurance Portability and Accountability Act von 1996 (HIPAA) und zur Verwendung von - AWS Services zur Verarbeitung, Speicherung und Übertragung geschützter Gesundheitsinformationen (PHI) finden Sie unter HIPAA-Übersicht.

Wichtig

Wenn Sie das Caching für eine Stufe aktivieren, wird standardmäßig nur die Zwischenspeicherung von GET-Methoden aktiviert. Dies hilft, die Sicherheit und die Verfügbarkeit Ihrer API zu gewährleisten. Sie können das Caching für andere Methoden aktivieren, indem Sie die Methodeneinstellungen überschreiben.

Wichtig

Caching wird basierend auf der von Ihnen ausgewählten Cache-Größe nach Stunden berechnet. Caching ist nicht für das AWS kostenlose Kontingent für berechtigt. Weitere Informationen finden Sie unter API-Gateway-Preise.

Caching von Amazon API Gateway aktivieren

In API Gateway können Sie das Caching für eine bestimmte Stufe aktivieren.

Wenn Sie Caching aktivieren, müssen Sie eine Cache-Kapazität auswählen. Im Allgemeinen bietet eine größere Kapazität eine bessere Leistung, kostet aber auch mehr. Informationen zu unterstützten Cache-Größen finden Sie unter cacheClusterSize in der API Gateway-API-Referenz.

API Gateway ermöglicht das Caching durch die Erstellung einer dedizierten Cache-Instance. Dieser Vorgang kann bis zu 4 Minuten dauern.

API Gateway ändert die Caching-Kapazität durch Löschen der vorhandenen Cache-Instance und Erstellen einen neuen mit einer geänderten Kapazität. Alle Daten im Cache werden gelöscht.

Anmerkung

Die Cache-Kapazität wirkt sich auf die CPU- und Netzwerkbandbreite der Cache-Instance aus. Infolgedessen kann sich die Cache-Kapazität auf die Performance Ihres Caches auswirken.

API Gateway empfiehlt, dass Sie einen 10-Minuten-Belastungstest durchführen, um zu überprüfen, ob Ihre Cache-Kapazität für Ihre Arbeitslast geeignet ist. Stellen Sie sicher, dass der Verkehr während des Lasttests den Produktionsverkehr widerspiegelt. Dazu gehören zum Beispiel Ramp Up, konstanter Verkehr und Verkehrsspitzen. Der Lasttest sollte Antworten enthalten, die aus dem Cache bereitgestellt werden können, sowie eindeutige Antworten, die dem Cache Elemente hinzufügen. Überwachen Sie die Latenz-, 4xx-, 5xx-, Cache-Hit- und Cache-Fehl-Metriken während des Belastungstests. Passen Sie Ihre Cache-Kapazität basierend auf diesen Metriken nach Bedarf an. Weitere Informationen zu Lasttests finden Sie unter Wie wähle ich die beste Kapazität für den API-Gateway-Cache aus, um zu vermeiden, dass ein Ratenlimit erreicht wird?.

In der API Gateway-Konsole konfigurieren Sie das Caching auf der Seite Stufen. Sie stellen den Stufen-Cache bereit und geben eine Standard-Cache-Einstellung auf Methodenebene an. Wenn Sie den Standard-Cache auf Methodenebene aktivieren, wird das Caching auf Methodenebene für alle Methoden in Ihrer Stufe aktiviert, es sei denn, diese Methode hat eine Methodenüberschreibung. Alle zusätzlichen GET Methoden, die Sie für Ihre Stufe bereitstellen, verfügen über einen Cache auf Methodenebene. Um die Caching-Einstellung auf Methodenebene für bestimmte Methoden Ihrer Stufe zu konfigurieren, können Sie Methodenüberschreibungen verwenden. Weitere Informationen zu Methodenüberschreibungen finden Sie unter API Gateway-Caching auf Stufenebene für Caching auf Methodenebene überschreiben.

So konfigurieren Sie API-Caching für eine bestimmte Stufe:
  1. Melden Sie sich bei der API-Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wählen Sie Stages.

  3. Wählen Sie in der API-Liste Stages den Namen der Stufe aus.

  4. Wählen Sie im Abschnitt Stage details (Stufendetails) die Option Edit (Bearbeiten) aus.

  5. Aktivieren Sie unter Zusätzliche Einstellungen für Cache-Einstellungen die Option API-Cache bereitstellen.

    Dadurch wird ein Cache-Cluster für Ihre Stufe bereitgestellt.

  6. Um das Caching für Ihre Stufe zu aktivieren, aktivieren Sie das Caching auf Methodenebene.

    Dadurch wird das Caching auf Methodenebene für alle Methoden in Ihrer Stufe aktiviert. Alle zusätzlichen GET Methoden, die Sie für diese Stufe bereitstellen, verfügen über einen Cache auf Methodenebene.

    Anmerkung

    Wenn Sie über eine vorhandene Einstellung für einen Cache auf Methodenebene verfügen, wirkt sich das Ändern der Standard-Caching-Einstellung auf Methodenebene nicht auf diese vorhandene Einstellung aus.

    
            Aktivieren Sie das Caching auf API-Bereitstellungs-Cache und Standard-Caching auf Methodenebene.
  7. Wählen Sie Änderungen speichern aus.

Anmerkung

Das API Gateway benötigt etwa 4 Minuten für das Erstellen und Löschen eines Caches.

Wenn ein Cache erstellt wird, ändert sich der Cache-Cluster-Wert von Create in progress zu Active. Wenn das Löschen des Cache abgeschlossen ist, ändert sich der Wert des Cache-Clusters von Delete in progress zu Inactive.

Wenn Sie das Caching auf Methodenebene für alle Methoden in Ihrer Stufe aktivieren, ändert sich der Caching-Wert auf Standardmethodeebene in Active. Wenn Sie das Caching auf Methodenebene für alle Methoden in Ihrer Stufe deaktivieren, ändert sich der Caching-Wert auf Standardmethodeebene in Inactive. Wenn Sie über eine vorhandene Einstellung für einen Cache auf Methodenebene verfügen, hat das Ändern des Cache-Status keine Auswirkungen auf diese Einstellung.

Wenn Sie das Caching in den Cache-Einstellungen einer Stufe aktivieren, werden nur GET-Methoden zwischengespeichert. Um die Sicherheit und Verfügbarkeit Ihrer API zu gewährleisten, empfehlen wir Ihnen, diese Einstellung nicht zu ändern. Sie können das Caching aber auch für andere Methoden aktivieren, indem Sie die Methodeneinstellungen überschreiben.

Wenn Sie sich vergewissern möchten, ob die Zwischenspeicherung wie erwartet funktioniert, haben Sie zwei allgemeine Optionen:

  • Überprüfen Sie die CloudWatch Metriken von CacheHitCount und CacheMissCount für Ihre API und Stufe.

  • Setzen Sie einen Zeitstempel in der Antwort.

Anmerkung

Sie sollten nicht den -X-CacheHeader aus der CloudFront Antwort verwenden, um festzustellen, ob Ihre API von Ihrer API Gateway-Cache-Instance bereitgestellt wird.

API Gateway-Caching auf Stufenebene für Caching auf Methodenebene überschreiben

Sie können Cache-Einstellungen auf Stufenebene überschreiben, indem Sie das Caching für eine bestimmte Methode aktivieren oder deaktivieren. Sie können auch den TTL-Zeitraum ändern oder die Verschlüsselung für zwischengespeicherte Antworten aktivieren oder deaktivieren.

Wenn Sie die Caching-Standardeinstellung auf Methodenebene in den Stufendetails ändern, hat dies keine Auswirkungen auf die Cache-Einstellungen auf Methodenebene, die Überschreibungen haben.

Wenn Sie davon ausgehen, dass eine zwischengespeicherte Methode sensible Daten in ihren Antworten erhält, wählen Sie in den Cache-Einstellungen die Option Encrypt cache data aus.

So konfigurieren Sie API-Caching für einzelne Methoden mithilfe der Konsole:
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wählen Sie die API.

  3. Wählen Sie Stages.

  4. Erweitern Sie in der Liste Stufen für die API die Stufe, und wählen Sie eine Methode in der API aus.

  5. Wählen Sie im Abschnitt Methodenüberschreibungen die Option Bearbeiten aus.

  6. Aktivieren oder deaktivieren Sie im Abschnitt Methodeneinstellungen die Option Methoden-Cache aktivieren oder deaktivieren Sie die gewünschten Optionen.

    Anmerkung

    Das Caching ist erst aktiv, wenn Sie einen Cache-Cluster für Ihre Stufe bereitstellen.

  7. Wählen Sie Speichern.

Verwenden der Methoden-/Integrationsparameter als Cache-Schlüssel, um zwischengespeicherte Antworten zu indizieren

Wenn eine zwischengespeicherte Methode oder Integration Parameter hat, z. B. in Form von kundenspezifischen Headers, URL-Pfaden oder Abfrage-Zeichenfolgen, können Sie einige oder alle der Parameter verwenden, um Cache-Schlüssel zu bilden. API Gateway kann die Antworten der Methode in Abhängigkeit von den verwendeten Parameterwerten zwischenspeichern.

Anmerkung

Cache-Schlüssel sind beim Einrichten von Caching für eine Ressource erforderlich.

Angenommen, Sie haben eine Anforderung im folgenden Format:

GET /users?type=... HTTP/1.1 host: example.com ...

In dieser Anforderung kann type den Wert admin oder regular annehmen. Wenn Sie den type-Parameter als Teil des Cache-Schlüssels einbinden, werden die Antworten aus GET /users?type=admin getrennt von denen aus GET /users?type=regular zwischengespeichert.

Wenn eine Methode oder Integrationsanforderung mehr als einen Parameter annimmt, können Sie einige oder alle dieser Parameter einschließen, um den Cache-Schlüssel zu erstellen. Beispielsweise können Sie für die folgende Anforderung nur den type-Parameter in den Cache-Schlüssel einschließen, in der aufgelisteten Reihenfolge innerhalb eines TTL-Zeitraums:

GET /users?type=admin&department=A HTTP/1.1 host: example.com ...

Die Antwort von dieser Anforderung wird im Cache gespeichert und verwendet, um die folgende Anforderung zu bedienen:

GET /users?type=admin&department=B HTTP/1.1 host: example.com ...

Um einen Methoden- oder Integrationsanforderungsparameter als Teil eines Cache-Schlüssels in die API Gateway-Konsole aufzunehmen, wählen Sie Caching, nachdem Sie den Parameter hinzugefügt haben.


                Einschließen von Methoden- oder Integrationsparametern als Cache-Schlüssel, um eine zwischengespeicherte Antwort zu indizieren

API-Stufen-Cache in API Gateway leeren

Wenn API-Zwischenspeicherung aktiviert ist, können Sie den Cache Ihrer API-Stufe löschen, um sicherzustellen, dass die Clients Ihrer API die neuesten Antworten von Ihren Integrationsendpunkten erhalten.

Wenn Sie den API-Stufen-Cache leeren möchten, wählen Sie das Menü Stufenaktionen und dann Stufen-Cache leeren aus.

Anmerkung

Nachdem der Cache gelöscht wurde, werden Antworten aus dem Integrationsendpunkt bedient, bis der Cache wieder aufgebaut ist. Während dieses Zeitraums kann sich die Anzahl der Anforderungen an den Integrationsendpunkt erhöhen. Dadurch kann sich die Gesamt-Latenz Ihrer API zeitweilig erhöhen.

API Gateway-Cache-Eintrag ungültig machen

Ein Client Ihrer API kann einen vorhandenen Cache-Eintrag entwerten und ihn vom Integrationsendpunkt für einzelne Anforderungen neu laden. Der Client muss eine Anforderung senden, die den Header Cache-Control: max-age=0 enthält. Der Client erhält die Antwort direkt vom Integrationsendpunkt anstelle des Zwischenspeichers, wenn der Client hierfür eine entsprechende Berechtigung hat. Dies ersetzt den vorhandenen Cache-Eintrag durch die neue Antwort, die vom Integrationsendpunkt abgerufen wird.

Um einem Aufrufer eine Berechtigung zu erteilen, fügen Sie an die IAM-Ausführungsrolle für den Client eine Richtlinie im folgenden Format an.

Anmerkung

Die kontoübergreifende Cache-Invalidierung wird nicht unterstützt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:InvalidateCache" ], "Resource": [ "arn:aws:execute-api:region:account-id:api-id/stage-name/GET/resource-path-specifier" ] } ] }

Diese Richtlinie erlaubt es dem API Gateway-Ausführungsdienst, den Cache für Anfragen zur angegebenen Ressource (oder den angegebenen Ressourcen) ungültig zu machen. Um eine Gruppe zum Ziel gesetzter Ressourcen anzugeben, verwenden Sie ein Platzhalterzeichen (*) für account-id, api-id und andere Angaben im ARN-Wert von Resource. Weitere Informationen über das Festlegen von Berechtigungen für den API Gateway-Ausführungsdienst finden Sie unter Kontrollieren des Zugriffs auf eine API mit IAM-Berechtigungen.

Wenn sie keine InvalidateCache-Richtlinie angeben (oder das Kontrollkästchen Autorisierung erforderlich in der Konsole aktivieren), kann jeder beliebige Client den API-Zwischenspeicher entwerten. Wenn die meisten oder alle Clients den API-Cache entwerten, kann dies zu einer erheblichen Steigerung der Latenz Ihrer API führen.

Wenn die Richtlinie eingerichtet ist, wird das Caching aktiviert und eine Autorisierung ist erforderlich.

Sie können steuern, wie nicht autorisierte Anfragen verarbeitet werden, indem Sie eine Option unter Behandlung nicht autorisierter Anfragen in der API Gateway-Konsole auswählen.


                Konfigurieren einer Cache-Invalidierung

Die drei Optionen haben folgende Verhaltensweisen zur Folge:

  • Fail the request with 403 status code: gibt die Antwort „403 Unauthorized“ zurück.

    Geben Sie zum Einstellen dieser Option über die API ei FAIL_WITH_403.

  • Ignore cache control header Add a warning in response header: Bearbeiten der Anfrage und Hinzufügen eines Warn-Headers in der Antwort.

    Geben Sie zum Einstellen dieser Option über die API ei SUCCEED_WITH_RESPONSE_HEADER.

  • Ignore cache control header: Bearbeiten der Anfrage ohne Hinzufügen eines Warn-Headers in der Antwort.

    Geben Sie zum Einstellen dieser Option über die API ei SUCCEED_WITHOUT_RESPONSE_HEADER.