Funktionen mit Verteilungen verknüpfen - Amazon CloudFront

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.

Funktionen mit Verteilungen verknüpfen

Um eine Funktion mit einer Verteilung zu verwenden, verknüpfen Sie die Funktion mit einem oder mehreren Cache-Verhalten in der Verteilung. Sie können eine Funktion mit verschiedenen Cache-Verhaltensweisen in mehreren Verteilungen verknüpfen.

Sie können eine Funktion den folgenden Verhaltensweisen zuordnen:

  • Ein vorhandenes Cache-Verhalten

  • Ein neues Cache-Verhalten in einer vorhandenen Distribution

  • Ein neues Cache-Verhalten in einer neuen Distribution

Wenn Sie eine Funktion mit einem Cache-Verhalten verknüpfen, müssen Sie einen Ereignistyp auswählen. Der Ereignistyp bestimmt, wann die Funktion CloudFront ausgeführt wird.

Sie können die folgenden Ereignistypen wählen:

  • Viewer-Anfrage — Die Funktion wird ausgeführt, wenn sie eine Anfrage von einem Viewer CloudFront erhält.

  • Antwort des Betrachters — Die Funktion wird ausgeführt, bevor eine Antwort an den Betrachter CloudFront zurückgegeben wird.

Sie können in Functions keine Ereignistypen verwenden, die auf den Ursprung gerichtet sind (ursprüngliche Anfrage und ursprüngliche Antwort). CloudFront Stattdessen können Sie Lambda @Edge verwenden. Weitere Informationen finden Sie unter CloudFront Ereignisse, die eine Lambda @Edge -Funktion auslösen können.

Anmerkung

Bevor Sie eine Funktion verknüpfen, müssen Sie sie in der LIVE-Phase veröffentlichen.

Sie können eine Funktion mit einer Distribution in der CloudFront Konsole oder mit AWS Command Line Interface (AWS CLI) verknüpfen. Das folgende Verfahren zeigt, wie eine Funktion mit einem vorhandenen Cache-Verhalten verknüpft wird.

Console
Um eine Funktion einem vorhandenen Cache-Verhalten zuzuordnen
  1. Melden Sie sich bei der CloudFront Konsole unter an https://console.aws.amazon.com/cloudfront/v4/home#/functions und wählen Sie die Seite Funktionen aus.

  2. Wählen Sie die Funktion aus, die Sie zuordnen möchten.

  3. Wählen Sie auf der Funktionsseite die Registerkarte Veröffentlichen.

  4. Wählen Sie die Funktion „Veröffentlichen“.

  5. Wählen Sie Add association. Wählen Sie im daraufhin angezeigten Dialogfeld eine Verteilung, einen Ereignistyp und/oder ein Cache-Verhalten aus.

    Wählen Sie für den Ereignistyp aus, wann diese Funktion ausgeführt werden soll:

    • Viewer-Anfrage — Führen Sie die Funktion jedes Mal aus, CloudFront wenn eine Anfrage eingeht.

    • Antwort des Betrachters — Führen Sie die Funktion jedes Mal aus, wenn eine Antwort CloudFront zurückgegeben wird.

  6. Um die Konfiguration zu speichern, wählen Sie Zuordnung hinzufügen.

CloudFront ordnet die Verteilung der Funktion zu. Warten Sie ein paar Minuten, bis die zugehörige Verteilung die Bereitstellung abgeschlossen hat. Sie können auf der Seite mit den Funktionsdetails die Option Verteilung anzeigen wählen, um den Fortschritt zu überprüfen.

CLI
Um eine Funktion einem vorhandenen Cache-Verhalten zuzuordnen
  1. Öffnen Sie ein Befehlszeilenfenster.

  2. Geben Sie den folgenden Befehl ein, um die Verteilungskonfiguration für die Distribution zu speichern, deren Cache-Verhalten Sie einer Funktion zuordnen möchten. Dieser Befehl speichert die Verteilungskonfiguration in einer Datei mit dem Namen dist-config.yaml. Um diesen Befehl zu verwenden, gehen Sie folgendermaßen vor:

    • Ersetzen Sie DistributionID durch die ID der Verteilung.

    • Führen Sie den Befehl in einer Zeile aus. Im Beispiel werden Zeilenumbrüche bereitgestellt, um das Beispiel besser lesbar zu machen.

    aws cloudfront get-distribution-config \ --id DistributionID \ --output yaml > dist-config.yaml

    Wenn der Befehl erfolgreich ist, wird keine Ausgabe AWS CLI zurückgegeben.

  3. Öffnen Sie die Datei mit dem Namendist-config.yaml, die Sie erstellt haben. Bearbeiten Sie die Datei, indem Sie die folgenden Änderungen vornehmen.

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

    2. Suchen Sie im Cache-Verhalten das Objekt mit dem Namen FunctionAssociations. Aktualisieren Sie dieses Objekt, um eine Funktionszuordnung hinzuzufügen. Die YAML-Syntax für eine Funktionszuordnung sieht wie im folgenden Beispiel aus.

      • Das folgende Beispiel zeigt den Ereignistyp Betrachteranfrage (Auslöser). Um den Ereignistyp Betrachterantwort zu verwenden, ersetzen Sie viewer-request durch viewer-response.

      • Ersetzen Sie arn:aws:cloudfront::111122223333:function/ExampleFunction durch den Amazon-Ressourcennamen (ARN) der Funktion, die Sie diesem Cache-Verhalten zuordnen. Um die Funktion ARN zu erhalten, können Sie den Befehl aws cloudfront list-functions verwenden.

      FunctionAssociations: Items: - EventType: viewer-request FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction Quantity: 1
    3. Nachdem Sie diese Änderungen vorgenommen haben, speichern Sie die Datei.

  4. Verwenden Sie den folgenden Befehl, um die Verteilung zu aktualisieren und die Funktionszuordnung hinzuzufügen. Um diesen Befehl zu verwenden, gehen Sie folgendermaßen vor:

    • Ersetzen Sie DistributionID durch die ID der Verteilung.

    • Führen Sie den Befehl in einer Zeile aus. Im Beispiel werden Zeilenumbrüche bereitgestellt, um das Beispiel besser lesbar zu machen.

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

    Wenn der Befehl erfolgreich ist, sehen Sie eine Ausgabe wie die folgende, die die Verteilung beschreibt, die gerade mit der Funktionszuordnung aktualisiert wurde. Die folgende Beispielausgabe wird zur besseren Lesbarkeit abgeschnitten.

    Distribution: ARN: arn:aws:cloudfront::111122223333:distribution/EBEDLT3BGRBBW ... truncated ... DistributionConfig: ... truncated ... DefaultCacheBehavior: ... truncated ... FunctionAssociations: Items: - EventType: viewer-request FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction Quantity: 1 ... truncated ... DomainName: d111111abcdef8.cloudfront.net Id: EDFDVBD6EXAMPLE LastModifiedTime: '2021-04-19T22:39:09.158000+00:00' Status: InProgress ETag: E2VJGGQEG1JT8S

Der Status der Verteilung ändert sich in InProgress während der erneuten Bereitstellung der Verteilung. Wenn die neue Verteilungskonfiguration einen CloudFront Edge-Standort erreicht, verwendet dieser Edge-Standort die zugehörige Funktion. Wenn die Verteilung vollständig bereitgestellt ist, werden die Status Änderungen wieder zu geändertDeployed. Dies weist darauf hin, dass die zugehörige CloudFront Funktion an allen CloudFront Edge-Standorten weltweit verfügbar ist. Dies dauert in der Regel einige Minuten.