Steuern von Ursprungsanforderungen - Amazon CloudFront

Steuern von Ursprungsanforderungen

Wenn eine Anfrage eines Betrachters an CloudFront zu einem Cache-Fehler führt (das angeforderte Objekt wird nicht am Edge-Standort zwischengespeichert), sendet CloudFront eine Anforderung an den Ursprung, um das Objekt abzurufen. Dies wird als Ursprungsanforderung bezeichnet. Die Ursprungsanforderung enthält stets die folgenden Informationen aus der Anforderung des Viewers:

  • Den URL-Pfad (nur den Pfad, ohne URL-Abfragezeichenfolgen oder Domänennamen)

  • Den Text der Anforderung (wenn vorhanden)

  • Die HTTP-Header, die CloudFront automatisch in jede Ursprungsanforderung einschließt, einschließlichHost, User-Agent und X-Amz-Cf-Id.

Andere Informationen aus der Viewer -Anforderung, z. B. URL-Abfragezeichenfolgen, HTTP-Header und Cookies, sind standardmäßig nicht in der Ursprungsanforderung enthalten. Möglicherweise möchten Sie jedoch einige dieser anderen Informationen am Ursprung erhalten, um z. B. Daten für Analysen oder Telemetrie zu sammeln. Sie können eine Ursprungsanforderungsrichtlinie verwenden, um die Informationen zu steuern, die in einer Ursprungsanforderung enthalten sind.

Ursprungsanforderungsrichtlinien unterscheiden sich von Cache-Richtlinien. Diese steuern den Cache-Schlüssel. Diese Unterscheidung ermöglicht Ihnen, zusätzliche Informationen am Ursprung zu erhalten und auch ein gutes Cache-Trefferverhältnis zu wahren (der Anteil der Viewer-Anforderungen, die zu einem Cache-Treffer führen). Hierzu steuern Sie separat, welche Informationen in Ursprungsanforderungen enthalten sind (über die Ursprungsanforderungsrichtlinie) und welche Informationen im Cache-Schlüssel enthalten sind (über die Cache-Richtlinie).

Auch wenn dies zwei getrennte Arten von Richtlinien sind, sind sie verwandt. Alle URL-Abfragezeichenfolgen, HTTP-Header und Cookies, die Sie in den Cache-Schlüssel (über eine Cache-Richtlinie) einfügen, werden automatisch auch in Ursprungsanforderungen eingefügt. Mithilfe der Ursprungsanforderungsrichtlinie können Sie die Informationen angeben, die Sie in Ursprungsanforderungen, jedoch nicht in den Cache-Schlüssel einfügen möchten. Genau wie eine Zwischenspeicher-Richtlinie fügen Sie eine Ursprungsanforderungsrichtlinie einer oder mehreren Zwischenspeicher-Verhaltensweisen in einer CloudFront-Verteilung an.

Sie können eine Ursprungsanforderungsrichtlinie auch verwenden, um einer Ursprungsanforderung zusätzliche HTTP-Header hinzuzufügen, die nicht in der Viewer-Anforderung enthalten waren. Diese zusätzlichen Header werden von CloudFront vor dem Senden der Ursprungsanforderung hinzugefügt. Die Header-Werte werden automatisch basierend auf der Betrachteranfrage ermittelt. Weitere Informationen finden Sie unter Hinzufügen der CloudFront-HTTP-Header.

Erstellen von Ursprungsanforderungsrichtlinien

Mit einer Ursprungsanforderungsrichtlinie können Sie die Werte (URL-Abfragezeichenfolgen, HTTP-Header und Cookies) steuern, die in Anforderungen enthalten sind, die CloudFront an Ihren Ursprung sendet. Sie können eine Ursprungsanforderungsrichtlinie in der CloudFront-Konsole, mit der AWS Command Line Interface (AWS CLI) oder mit der CloudFront-API erstellen.

Nach der Erstellung der Ursprungsanforderungsrichtlinie fügen Sie sie einer oder mehreren Zwischenspeicher-Verhaltensweisen in einer CloudFront-Verteilung an.

Ursprungsanforderungsrichtlinien sind nicht erforderlich. Wenn einem Cacheverhalten keine Ursprungsanforderungsrichtlinie angefügt ist, enthält die Ursprungsanforderung alle Werte, die in der Cache-Richtlinie angegeben sind, jedoch keine weiteren Werte.

Anmerkung

Um eine Ursprungsanforderungsrichtlinie verwenden zu können, muss das Cacheverhalten auch eine Cache-Richtlinie verwenden. Sie können eine Ursprungsanforderungsrichtlinie in einem Cacheverhalten nicht ohne eine Cache-Richtlinie verwenden.

Console

So erstellen Sie eine Ursprungsanforderungsrichtlinie (Konsole)

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Seite Richtlinien in der CloudFront-Konsole unter https://console.aws.amazon.com/cloudfront/v3/home?#/policies.

  2. Wählen Sie Ursprungsanforderung und anschließend Ursprungsanforderungsrichtlinie erstellen aus.

  3. Wählen Sie die gewünschte Einstellung für diese Ursprungsanforderungsrichtlinie aus. Weitere Informationen finden Sie unter Grundlagen von Ursprungsanforderungsrichtlinien.

  4. Wenn Sie fertig sind, wählen Sie Erstellen.

Nach der Erstellung einer Ursprungsanforderungsrichtlinie können Sie diese einem Cacheverhalten anfügen.

So fügen Sie eine Ursprungsanforderungsrichtlinie an eine vorhandene Verteilung an (Konsole)

  1. Öffnen Sie die Seite Distributions (Verteilungen) in der CloudFront-Konsole unter https://console.aws.amazon.com/cloudfront/v3/home#/distributions.

  2. Wählen Sie die Verteilung aus, die Sie aktualisieren möchten, und anschließend die Registerkarte Behaviors (Verhalten) aus.

  3. Wählen Sie das Cacheverhalten, das Sie aktualisieren möchten, und anschließend Edit (Bearbeiten) aus.

    Um ein neues Cacheverhalten zu erstellen, wählen Sie Verhalten erstellen aus.

  4. Stellen Sie im Abschnitt Cache-Schlüssel- und Ursprungsanforderungen sicher, dass Cache-Richtlinie und Ursprungsanforderungsrichtlinie ausgewählt sind.

  5. Wählen Sie unter Ursprungsanforderungsrichtlinie die Ursprungsanforderungsrichtlinie aus, die diesem Cacheverhalten angefügt werden soll.

  6. Wählen Sie unten auf der Seite die Option Änderungen speichern aus.

So fügen Sie eine Ursprungsanforderungsrichtlinie an eine neue Verteilung an (Konsole)

  1. Öffnen Sie die CloudFront-Konsole unter https://console.aws.amazon.com/cloudfront/v3/home.

  2. Wählen Sie Verteilung erstellen.

  3. Stellen Sie im Abschnitt Cache-Schlüssel- und Ursprungsanforderungen sicher, dass Cache-Richtlinie und Ursprungsanforderungsrichtlinie ausgewählt sind.

  4. Wählen Sie in Ursprungsanforderungsrichtlinie die Ursprungsanforderungsrichtlinie aus, die dem Standard-Cacheverhalten dieser Verteilung angefügt werden soll.

  5. Wählen Sie die gewünschten Einstellungen für den Ursprung, das Standard-Cacheverhalten und andere Verteilungseinstellungen aus. Weitere Informationen finden Sie unter Werte, die Sie beim Erstellen oder Aktualisieren einer Verteilung angeben.

  6. Wenn Sie fertig sind, wählen Sie Verteilung erstellen aus.

CLI

Verwenden Sie den aws cloudfront create-origin-request-policy-Befehl, um eine Ursprungsanforderungsrichtlinie mit der AWS Command Line Interface (AWS CLI) zu erstellen. Sie können eine Eingabedatei verwenden, um die Eingabeparameter des Befehls bereitzustellen, anstatt jeden einzelnen Parameter als Befehlszeileneingabe anzugeben.

So erstellen Sie eine Ursprungsanforderungsrichtlinie (CLI mit Eingabedatei)

  1. Verwenden Sie den folgenden Befehl, um eine Datei mit dem Namen origin-request-policy.yaml zu erstellen, die alle Eingabeparameter für den create-origin-request-policy-Befehl enthält.

    aws cloudfront create-origin-request-policy --generate-cli-skeleton yaml-input > origin-request-policy.yaml
    Anmerkung

    Die Option yaml-input ist nur in Version 2 der AWS CLI verfügbar. Mit Version 1 von AWS CLI können Sie eine Eingabedatei im JSON-Format generieren. Weitere Informationen zum Parameter finden Sie unter Generieren der AWS CLI-Skeleton- und -Eingabeparameter aus einer JSON- oder YAML-Eingabedatei im AWS Command Line Interface-Benutzerhandbuch.

  2. Öffnen Sie die Datei mit dem Namen origin-request-policy.yaml, die Sie gerade erstellt haben. Bearbeiten Sie die Datei, um die gewünschten Einstellungen für die Ursprungsanforderungsrichtlinie anzugeben, und speichern Sie die Datei. Sie können optionale Felder aus der Datei entfernen. Sie dürfen jedoch keine erforderlichen Felder entfernen.

    Weitere Informationen zu den Einstellungen für die Ursprungsanforderungsrichtlinie finden Sie unter Grundlagen von Ursprungsanforderungsrichtlinien.

  3. Verwenden Sie den folgenden Befehl, um die Ursprungsanforderungsrichtlinie mit Eingabeparametern aus der Datei origin-request-policy.yaml zu erstellen.

    aws cloudfront create-origin-request-policy --cli-input-yaml file://origin-request-policy.yaml

    Notieren Sie den Id-Wert in der Ausgabe des Befehls. Dies ist die Ursprungsanforderungsrichtlinien-ID, die Sie benötigen, um die Ursprungsanforderungsrichtlinie an das Zwischenspeicher-Verhalten einer CloudFront-Verteilung anzufügen.

So fügen Sie eine Ursprungsanforderungsrichtlinie an eine vorhandene Verteilung an (CLI mit Eingabedatei)

  1. Verwenden Sie den folgenden Befehl, um die Verteilungskonfiguration für die zu aktualisierende CloudFront-Verteilung zu speichern. Ersetzen Sie distribution_ID durch die ID der Verteilung.

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
    Anmerkung

    Die Option --output yaml ist nur in Version 2 der AWS CLI verfügbar. Mit Version 1 der AWS CLI können Sie die Ausgabe im JSON-Format generieren. Weitere Informationen finden Sie unter Steuern der Befehlsausgabe über die AWS CLI im AWS Command Line Interface-Benutzerhandbuch.

  2. Öffnen Sie die Datei mit dem Namen dist-config.yaml, die Sie gerade erstellt haben. Bearbeiten Sie die Datei und nehmen Sie die folgenden Änderungen an jedem Cacheverhalten vor, das Sie aktualisieren, um eine Ursprungsanforderungsrichtlinie zu verwenden.

    • Fügen Sie in der Cache-Verhaltensweise ein Feld mit dem Namen hinz OriginRequestPolicyId. Verwenden Sie als Wert des Felds die Ursprungsanforderungsrichtlinien-ID, die Sie nach dem Erstellen der Richtlinie notiert haben.

    • Benennen Sie das ETag-Feld in IfMatch um, ändern Sie jedoch nicht den Wert des Feldes.

    Speichern Sie die Datei, wenn Sie fertig sind.

  3. Verwenden Sie den folgenden Befehl, um die Verteilung zur Verwendung der Ursprungsanforderungsrichtlinie zu aktualisieren. Ersetzen Sie distribution_ID durch die ID der Verteilung.

    aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml

So fügen Sie eine Ursprungsanforderungsrichtlinie an eine neu Verteilung an (CLI mit Eingabedatei)

  1. Verwenden Sie den folgenden Befehl, um eine Datei mit dem Namen distribution.yaml zu erstellen, die alle Eingabeparameter für den create-distribution-Befehl enthält.

    aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
    Anmerkung

    Die Option yaml-input ist nur in Version 2 der AWS CLI verfügbar. Mit Version 1 von AWS CLI können Sie eine Eingabedatei im JSON-Format generieren. Weitere Informationen zum Parameter finden Sie unter Generieren der AWS CLI-Skeleton- und -Eingabeparameter aus einer JSON- oder YAML-Eingabedatei im AWS Command Line Interface-Benutzerhandbuch.

  2. Öffnen Sie die Datei mit dem Namen distribution.yaml, die Sie gerade erstellt haben. Geben Sie im Standard-Cacheverhalten in das Feld OriginRequestPolicyId die Ursprungsanforderungsrichtlinien-ID ein, die Sie nach dem Erstellen der Richtlinie notiert haben. Fahren Sie mit der Bearbeitung der Datei fort, um die gewünschten Verteilungseinstellungen anzugeben, und speichern Sie die Datei, wenn Sie fertig sind.

    Weitere Informationen zu den Verteilungseinstellungen finden Sie unter Werte, die Sie beim Erstellen oder Aktualisieren einer Verteilung angeben.

  3. Verwenden Sie den folgenden Befehl, um die Verteilung mit Eingabeparametern aus der Datei distribution.yaml zu erstellen.

    aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
API

Um eine Ursprungsanforderungsrichtlinie mit der CloudFront-API zu erstellen, verwenden Sie CreateOriginRequestPolicy. Weitere Informationen zu den Feldern, die Sie in diesem API-Aufruf angeben, finden Sie unter Grundlagen von Ursprungsanforderungsrichtlinien und in der API-Referenzdokumentation für Ihr AWS-SDK oder einen anderen API-Client.

Nach der Erstellung einer Ursprungsanforderungsrichtlinie können Sie diese mit einem der folgenden API-Aufrufe an ein Cacheverhalten anfügen:

  • Verwenden Sie UpdateDistribution, um sie an eine Cache-Verhaltensweise in einer vorhandenen Verteilung anzufügen.

  • Um sie an ein Cache-Verhaltensweise in einer neuen Verteilung anzufügen, verwenden Sie CreateDistribution.

Für beide API-Aufrufe geben Sie die ID der Ursprungsanforderungsrichtlinie in das Feld OriginRequestPolicyId innerhalb eines Cacheverhaltens an. Weitere Informationen zu den anderen Feldern, die Sie in diesen API-Aufrufen angeben, finden Sie unter Werte, die Sie beim Erstellen oder Aktualisieren einer Verteilung angeben und in der API-Referenzdokumentation für Ihr AWS SDK oder einen anderen API-Client.

Grundlagen von Ursprungsanforderungsrichtlinien

CloudFront stellt einige vordefinierte Ursprungsanforderungsrichtlinien für häufige Anwendungsfälle bereit, die als verwaltete Richtlinien bezeichnet werden. Sie können diese verwalteten Richtlinien verwenden oder eine eigene Ursprungsanforderungsrichtlinie speziell für Ihre Anforderungen erstellen. Weitere Informationen zu verwalteten Richtlinien finden Sie unter Verwenden der verwalteten Ursprungsanforderungsrichtlinien.

Eine Ursprungsanforderungsrichtlinie enthält die folgenden Einstellungen, die in Richtlinieninformationen und Ursprungsanforderungseinstellungen unterteilt werden.

Richtlinieninformationen

Name

Ein Name zur Identifizierung der Ursprungsanforderungsrichtlinie. Sie verwenden den Namen in der Konsole, um die Ursprungsanforderungsrichtlinie einem Cacheverhalten anzufügen.

Beschreibung

Ein Kommentar zur Beschreibung der Ursprungsanforderungsrichtlinie. Dieser Schritt ist optional.

Ursprungsanforderungseinstellungen

Ursprungsanforderungseinstellungen geben die Werte in Betrachteranfragen an, die in Anforderungen enthalten sind, die CloudFront an den Ursprung sendet (als Ursprungsanforderungen bezeichnet). Bei den Werten kann es sich um URL-Abfragezeichenfolgen, HTTP-Header und Cookies handeln. Die von Ihnen angegebenen Werte werden in Ursprungsanforderungen, jedoch nicht in den Cache-Schlüssel eingefügt. Informationen zum Steuern des Cache-Schlüssels finden Sie unter Kontrollieren des Cache-Schlüssels.

Header

Die HTTP-Header in Betrachteranfragen, die CloudFront in Ursprungsanforderungen einfügt. Sie können für Header eine der folgenden Einstellungen auswählen:

  • None (Keine) – Die HTTP-Header in Betrachteranfragen werden nicht in Ursprungsanforderungen eingefügt.

  • All viewer headers (Alle Betrachter-Header) – Alle HTTP-Header in Betrachteranfragen werden in Ursprungsanforderungen eingefügt.

  • Die folgenden Header einschließen – Sie geben an, welche HTTP-Header in Ursprungsanforderungen eingeschlossen werden.

  • Alle Betrachter-Header und die folgenden CloudFront-Header – Alle HTTP-Header in Betrachter-Anfragen sind in Ursprungsanfragen enthalten. Darüber hinaus geben Sie die CloudFront-Header an, die Sie Ursprungsanforderungen hinzufügen möchten. Weitere Informationen zu den CloudFront-Headern finden Sie unter Hinzufügen der CloudFront-HTTP-Header.

Wenn Sie die Einstellung Die folgenden Header einschließen oder Alle Betrachter-Header und die folgenden CloudFront-Header verwenden, geben Sie HTTP-Header nach ihrem Namen und nicht nach ihrem Wert an. Betrachten Sie beispielsweise den folgenden HTTP-Header:

Accept-Language: en-US,en;q=0.5

In diesem Fall geben Sie den Header als Accept-Language an, nicht als Accept-Language: en-US,en;q=0.5 an. CloudFront fügt jedoch den vollständigen Header einschließlich Wert in Ursprungsanforderungen ein.

Cookies

Die Cookies in Betrachteranfragen, die CloudFront in Ursprungsanforderungen einfügt. Für Cookies können Sie eine der folgenden Einstellungen auswählen:

  • None (Keine) – Die Cookies in Betrachteranfragen werden nicht in Ursprungsanforderungen eingefügt.

  • All (Alle) – Alle Cookies in Betrachteranfragen werden in Ursprungsanforderungen eingefügt.

  • Angegebene Cookies einschließen – Sie geben an, welche Cookies in Betrachteranfragen in Ursprungsanforderungen eingefügt werden.

Wenn Sie die Einstellung Angegebene Cookies einschließen verwenden, geben Sie Cookies nach Name und nicht nach Wert an. Betrachten Sie beispielsweise den folgenden Cookie-Header:

Cookie: session_ID=abcd1234

In diesem Fall geben Sie das Cookie als session_ID, nicht als session_ID=abcd1234 an. CloudFront fügt jedoch das vollständige Cookie einschließlich Wert in Ursprungsanforderungen ein.

Abfragezeichenfolgen

Die URL-Abfragezeichenfolgen in Betrachteranfragen, die CloudFront in Ursprungsanforderungen einfügt. Für Abfragezeichenfolgen können Sie eine der folgenden Einstellungen auswählen:

  • None (Keine) – Die Abfragezeichenfolgen in Betrachteranfragen werden nicht in Ursprungsanforderungen eingefügt.

  • All (Alle) – Alle Abfragezeichenfolgen in Betrachteranfragen werden in Ursprungsanforderungen eingefügt.

  • Angegebene Abfragezeichenfolgen einschließen – Sie geben an, welche Abfragezeichenfolgen in Betrachteranfragen in Ursprungsanforderungen eingefügt werden.

Wenn Sie die Einstellung Angegebene Abfragezeichenfolgen einschließen verwenden, geben Sie Abfragezeichenfolgen nach ihrem Namen und nicht nach ihrem Wert an. Betrachten Sie beispielsweise den folgenden URL-Pfad:

/content/stories/example-story.html?split-pages=false

In diesem Fall geben Sie die Abfragezeichenfolge als split-pages, nicht als split-pages=false an. CloudFront fügt jedoch die vollständige Abfragezeichenfolge einschließlich Wert in Ursprungsanforderungen ein.