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.
Themen
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.
Ähnliche Informationen
Weitere Informationen zum Arbeiten mit CloudFront Funktionen finden Sie in den folgenden Themen: