Ermitteln Sie den Zweck der Funktion - 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.

Ermitteln Sie den Zweck der Funktion

Bevor Sie Ihren Funktionscode schreiben, bestimmen Sie den Zweck Ihrer Funktion. Die meisten CloudFront Funktionen in Functions haben einen der folgenden Zwecke.

Unabhängig vom Zweck Ihrer Funktion ist handler der Einstiegspunkt für jede Funktion. Es benötigt ein einzelnes aufgerufenes Argumentevent, das an die Funktion von übergeben wird CloudFront. Das event ist ein JSON Objekt, das eine Darstellung der HTTP Anfrage (und der Antwort, falls Ihre Funktion die HTTP Antwort ändert) enthält.

Ändern Sie die HTTP Anfrage in einem Viewer-Anforderungsereignistyp

Ihre Funktion kann die HTTP Anforderung ändern, die vom Viewer (Client) CloudFront empfangen wird, und die geänderte Anfrage CloudFront zur weiteren Verarbeitung an sie zurücksenden. Beispielsweise könnte Ihr Funktionscode den Cache-Schlüssel normalisieren oder Anforderungs-Header ändern.

Wenn Sie eine Funktion erstellen, die die HTTP Anforderung ändert, stellen Sie sicher, dass Sie den Ereignistyp für die Viewer-Anforderung auswählen. Das bedeutet, dass die Funktion jedes Mal ausgeführt wird, CloudFront wenn eine Anfrage von einem Viewer eingeht, bevor überprüft wird, ob sich das angeforderte Objekt im CloudFront Cache befindet.

Beispiel

Der folgende Pseudocode zeigt die Struktur einer Funktion, die die Anfrage ändert. HTTP

function handler(event) { var request = event.request; // Modify the request object here. return request; }

Die Funktion gibt das geänderte request Objekt an zurück. CloudFront CloudFrontsetzt die Verarbeitung der zurückgegebenen Anfrage fort, indem sie den CloudFront Cache auf einen Cache-Treffer überprüft und die Anfrage gegebenenfalls an den Ursprung sendet.

Generiert eine HTTP Antwort im Ereignistyp „Viewer-Anfrage“

Ihre Funktion kann am Edge eine HTTP Antwort generieren und sie direkt an den Viewer (Client) zurückgeben, ohne nach einer zwischengespeicherten Antwort zu suchen oder sie weiter zu verarbeiten. CloudFront Beispielsweise könnte Ihr Funktionscode die Anfrage an eine neue URL weiterleiten oder nach einer Autorisierung suchen und auf nicht autorisierte Anfragen eine 403 Antwort 401 oder zurückgeben.

Wenn Sie eine Funktion erstellen, die eine HTTP Antwort generiert, stellen Sie sicher, dass Sie den Ereignistyp der Viewer-Anfrage wählen. Das bedeutet, dass die Funktion jedes Mal ausgeführt wird, wenn eine Anfrage von einem Viewer CloudFront empfangen CloudFront wird, bevor die Anfrage weiter verarbeitet wird.

Beispiel

Der folgende Pseudocode zeigt die Struktur einer Funktion, die eine Antwort generiert. HTTP

function handler(event) { var request = event.request; var response = ...; // Create the response object here, // using the request properties if needed. return response; }

Die Funktion gibt ein response Objekt an zurück CloudFront, das CloudFront sofort zum Viewer zurückkehrt, ohne den CloudFront Cache zu überprüfen oder eine Anfrage an den Ursprung zu senden.

Ändern Sie die HTTP Antwort in einem Antwort-Ereignistyp des Betrachters

Ihre Funktion kann die HTTP Antwort ändern, bevor sie CloudFront an den Viewer (Client) gesendet wird, unabhängig davon, ob die Antwort aus dem CloudFront Cache oder dem Ursprung stammt. Beispielsweise könnte Ihr Funktionscode Antwortheader, Statuscodes oder Textinhalte hinzufügen oder ändern.

Wenn Sie eine Funktion erstellen, die die HTTP Antwort ändert, stellen Sie sicher, dass Sie den Ereignistyp der Zuschauerantwort wählen. Das bedeutet, dass die Funktion ausgeführt wird, bevor sie eine Antwort an den Betrachter CloudFront zurückgibt, unabhängig davon, ob die Antwort aus dem CloudFront Cache oder dem Ursprung stammt.

Beispiel

Der folgende Pseudocode zeigt die Struktur einer Funktion, die die Antwort ändert. HTTP

function handler(event) { var request = event.request; var response = event.response; // Modify the response object here, // using the request properties if needed. return response; }

Die Funktion gibt das geänderte response Objekt an zurück CloudFront, das CloudFront sofort zum Viewer zurückkehrt.

Weitere Informationen zum Arbeiten mit CloudFront Funktionen finden Sie in den folgenden Themen: