Eventi CloudFront che possono attivare una funzione LambdaòEdge
Per ogni comportamento cache in una distribuzione Amazon CloudFront, puoi aggiungere fino a quattro trigger (associazioni) che determinano l’esecuzione di una funzione Lambda quando si verificano specifici eventi di CloudFront. I trigger CloudFront possono essere basati su quattro eventi CloudFront, come illustrato nel seguente diagramma.
Gli eventi CloudFront che possono essere utilizzati per attivare le funzioni Lambda@Edge sono i seguenti:
- Richiesta visualizzatore
-
La funzione viene eseguita quando CloudFront riceve una richiesta da un visualizzatore e prima che verifichi se l'oggetto richiesto è nella cache di CloudFront.
La funzione non viene eseguita nei seguenti casi:
-
Quando si recupera una pagina di errore personalizzata.
-
Quando CloudFront reindirizza automaticamente una richiesta HTTP a HTTPS (quando il valore di Viewer Protocol Policy (Policy protocollo visualizzatore) è Reindirizza HTTP a HTTPS).
-
- Richiesta origine
-
La funzione viene eseguita solo quando CloudFront inoltra una richiesta all'origine. Quando l'oggetto richiesto è nella cache di CloudFront, la funzione non viene eseguita.
- Risposta origine
-
La funzione viene eseguita dopo che CloudFront riceve una risposta dall'origine e prima che memorizzi nella cache l'oggetto nella risposta. La funzione verrà eseguita anche se l'origine restituisce un errore.
La funzione non viene eseguita nei seguenti casi:
-
Quando il file richiesto è nella cache CloudFront e non è scaduto.
-
Quando la risposta viene generata da una funzione che è stata attivata da un evento di richiesta origine
-
- Risposta visualizzatore
-
La funzione viene eseguita prima di restituire il file richiesto al visualizzatore. La funzione viene eseguita indipendentemente dalla presenza o meno del file nella cache CloudFront.
La funzione non viene eseguita nei seguenti casi:
-
Quando l'origine restituisce un codice di stato HTTP 400 o superiore
-
Quando viene restituita una pagina di errore personalizzata
-
Quando la risposta viene generata da una funzione che è stata attivata da un evento di richiesta visualizzatore
-
Quando CloudFront reindirizza automaticamente una richiesta HTTP a HTTPS (quando il valore di Viewer Protocol Policy (Policy protocollo visualizzatore) è Reindirizza HTTP a HTTPS).
-
Quando aggiungi più trigger allo stesso comportamento cache, puoi utilizzarli per eseguire la stessa funzione o eseguire funzioni differenti per ciascun trigger. Puoi anche associare la stessa funzione a più di una distribuzione.
Nota
Quando un evento CloudFront attiva l’esecuzione di una funzione Lambda, la funzione deve terminare prima che CloudFront possa continuare.
Ad esempio, quando una funzione Lambda viene attivata da una richiesta del visualizzatore di CloudFront, questo non restituirà una risposta al visualizzatore né inoltrerà la richiesta all'origine fino a quando non viene completata l'esecuzione della funzione Lambda.
Ciò significa che ogni richiesta che attiva una funzione Lambda aumenta la latenza per la richiesta, pertanto è consigliabile che la funzione venga eseguita il più rapidamente possibile.