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.
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. event
ist ein JSON-Objekt, das eine Darstellung der HTTP-Anfrage enthält (und der Antwort, wenn Ihre Funktion die HTTP-Antwort ändert).
Ändern der HTTP-Anforderung in einem Viewer-Anforderungsereignistyp
Ihre Funktion kann die HTTP-Anfrage ä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, achten Sie darauf, den Ereignistyp der Betrachteranfrage auszuwä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 HTTP-Anfrage ändert.
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.
Generieren einer HTTP-Antwort in einem Viewer-Anforderungsereignistyp
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 umleiten oder nach Autorisierung suchen und eine 401
- oder 403
-Antwort auf nicht autorisierte Anfragen zurückgeben.
Wenn Sie eine Funktion erstellen, die eine HTTP-Antwort generiert, achten Sie darauf, den Ereignistyp der Betrachteranfrage auszuwählen. Das bedeutet, dass die Funktion jedes Mal ausgeführt wird, wenn sie eine Anfrage von einem Viewer CloudFront erhält, bevor CloudFront die Anfrage weiter verarbeitet wird.
Beispiel
Der folgende Pseudocode zeigt die Struktur einer Funktion, die eine HTTP-Antwort generiert.
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 der HTTP-Antwort in einem Viewer-Antwortereignistyp
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 vom 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, achten Sie darauf, den Ereignistyp Betrachterantwort zu wählen. Das bedeutet, dass die Funktion ausgeführt wird, bevor sie eine Antwort an den Viewer CloudFront zurückgibt, unabhängig davon, ob die Antwort aus dem CloudFront Cache oder vom Ursprung stammt.
Beispiel
Der folgende Pseudocode zeigt die Struktur einer Funktion, die die HTTP-Antwort ändert.
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: