Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Determina lo scopo della funzione
Prima di scrivere il codice funzione, è necessario determinare lo scopo della funzione. La maggior parte CloudFront delle funzioni di Functions ha uno dei seguenti scopi.
Argomenti
Indipendentemente dallo scopo della funzione, handler
è il punto di ingresso per qualsiasi funzione. Richiede un solo argomento chiamatoevent
, che viene passato alla funzione da CloudFront. event
è un oggetto JSON che contiene una rappresentazione della richiesta HTTP (e la risposta, se la funzione modifica la risposta HTTP).
Modifica della richiesta HTTP in un tipo di evento di richiesta visualizzatore
La funzione può modificare la richiesta HTTP CloudFront ricevuta dal visualizzatore (client) e restituire la richiesta modificata a CloudFront per continuare l'elaborazione. Ad esempio, il codice funzione potrebbe normalizzare la chiave cache o modificare le intestazioni delle richieste.
Quando crei una funzione che modifica la richiesta HTTP, assicurati di scegliere il tipo di evento richiesta del visualizzatore . Ciò significa che la funzione viene eseguita ogni volta che si CloudFront riceve una richiesta da un visualizzatore, prima di verificare se l'oggetto richiesto è nella CloudFront cache.
Esempio
Il seguente pseudocodice mostra la struttura di una funzione che modifica la richiesta HTTP.
function handler(event) { var request = event.request; // Modify the request object here. return request; }
La funzione restituisce l'request
oggetto modificato a CloudFront. CloudFrontcontinua a elaborare la richiesta restituita controllando la CloudFront presenza di un hit nella cache e inviando la richiesta all'origine, se necessario.
Generazione di una risposta HTTP in un tipo di evento di richiesta visualizzatore
La funzione può generare una risposta HTTP all'edge e restituirla direttamente al visualizzatore (client) senza verificare la presenza di una risposta memorizzata nella cache o ulteriori elaborazioni da parte CloudFront di. Ad esempio, il codice funzione potrebbe reindirizzare la richiesta a un nuovo URL oppure verificare l'autorizzazione e restituire una risposta 401
o 403
a richieste non autorizzate.
Quando crei una funzione che genera una risposta HTTP, assicurati di scegliere il tipo di evento richiesta del visualizzatore. Ciò significa che la funzione viene eseguita ogni volta che CloudFront riceve una richiesta da un visualizzatore, prima CloudFront di eseguire qualsiasi ulteriore elaborazione della richiesta.
Esempio
Il seguente pseudocodice mostra la struttura di una funzione che genera una risposta HTTP.
function handler(event) { var request = event.request; var response = ...; // Create the response object here, // using the request properties if needed. return response; }
La funzione restituisce un response
oggetto a CloudFront, che ritorna CloudFront immediatamente al visualizzatore senza controllare la CloudFront cache o inviare una richiesta all'origine.
Modifica della risposta HTTP in un tipo di evento di risposta visualizzatore
La funzione può modificare la risposta HTTP prima di CloudFront inviarla al visualizzatore (client), indipendentemente dal fatto che la risposta provenga dalla CloudFront cache o dall'origine. Ad esempio, il codice funzione potrebbe aggiungere o modificare le intestazioni, i codici di stato e i contenuti del corpo della risposta.
Quando crei una funzione che modifica la risposta HTTP, assicurati di scegliere il tipo di evento risposta del visualizzatore . Ciò significa che la funzione viene eseguita prima di CloudFront restituire una risposta al visualizzatore, indipendentemente dal fatto che la risposta provenga dalla CloudFront cache o dall'origine.
Esempio
Il seguente pseudocodice mostra la struttura di una funzione che modifica la risposta 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; }
La funzione restituisce l'response
oggetto modificato a CloudFront, che ritorna CloudFront immediatamente al visualizzatore.
Informazioni correlate
Per ulteriori informazioni sull'utilizzo CloudFront delle funzioni, consultate i seguenti argomenti: