

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à.

# Aggiunta di trigger per una funzione Lambda@Edge
<a name="lambda-edge-add-triggers"></a>

Un trigger Lambda @Edge è una combinazione di CloudFront distribuzione, comportamento della cache ed evento che causa l'esecuzione di una funzione. Ad esempio, puoi creare un trigger che causa l'esecuzione della funzione quando ricevi CloudFront una richiesta da un visualizzatore per uno specifico comportamento della cache impostato per la tua distribuzione. È possibile specificare uno o più CloudFront trigger. 

**Suggerimento**  
Quando si crea una CloudFront distribuzione, si specificano le impostazioni che indicano CloudFront come rispondere quando riceve richieste diverse. Per impostazioni predefinite si intende il *comportamento cache predefinito* per la distribuzione. È possibile impostare comportamenti aggiuntivi della cache che definiscono la modalità di CloudFront risposta in circostanze specifiche, ad esempio quando riceve una richiesta per un tipo di file specifico. Per ulteriori informazioni, consulta [Cache Behavior Settings (Impostazioni del comportamento della cache)](DownloadDistValuesCacheBehavior.md).

Quando crei una funzione Lambda per la prima volta, puoi specificare *un* solo trigger. Puoi aggiungere altri trigger alla stessa funzione in un secondo momento utilizzando la console Lambda o modificando la distribuzione nella CloudFront console.
+ La console Lambda funziona bene se desideri aggiungere più trigger a una funzione per la stessa distribuzione. CloudFront 
+ La CloudFront console può essere migliore se desideri aggiungere trigger per più distribuzioni, perché è più facile trovare la distribuzione che desideri aggiornare. Puoi anche aggiornare altre CloudFront impostazioni contemporaneamente.

**Topics**
+ [

# CloudFront eventi che possono attivare una funzione Lambda @Edge
](lambda-cloudfront-trigger-events.md)
+ [

# Scelta dell’evento per attivare la funzione
](lambda-how-to-choose-event.md)
+ [

# Aggiunta di trigger a una funzione Lambda@Edge
](lambda-edge-add-triggers-console.md)

# CloudFront eventi che possono attivare una funzione Lambda @Edge
<a name="lambda-cloudfront-trigger-events"></a>

Per ogni comportamento della cache in una CloudFront distribuzione Amazon, puoi aggiungere fino a quattro trigger (associazioni) che causano l'esecuzione di una funzione Lambda quando si verificano eventi CloudFront specifici. CloudFront i trigger possono essere basati su uno dei quattro CloudFront eventi, come mostrato nel diagramma seguente.

![\[Grafico concettuale che mostra come si CloudFront integrano gli eventi di attivazione per le funzioni Lambda con. CloudFront\]](http://docs.aws.amazon.com/it_it/AmazonCloudFront/latest/DeveloperGuide/images/cloudfront-events-that-trigger-lambda-functions.png)


Gli CloudFront eventi 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, prima di verificare se l'oggetto richiesto è nella CloudFront cache.  
La funzione non viene eseguita nei seguenti casi:  
+ Quando si recupera una pagina di errore personalizzata.
+ Quando reindirizza CloudFront automaticamente una richiesta HTTP a HTTPS (quando il valore di [Viewer Protocol Policy (Policy protocollo visualizzatore)](DownloadDistValuesCacheBehavior.md#DownloadDistValuesViewerProtocolPolicy) è **Reindirizza HTTP** a HTTPS).

**Richiesta origine**  
La funzione viene eseguita *solo* quando CloudFront inoltra una richiesta all'origine. Quando l'oggetto richiesto è nella CloudFront cache, la funzione non viene eseguita.

**Risposta origine**  
La funzione viene eseguita dopo aver CloudFront ricevuto una risposta dall'origine e prima di memorizzare 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 CloudFront cache 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. Si noti che la funzione viene eseguita indipendentemente dal fatto che il file sia già presente nella CloudFront cache.  
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 reindirizza CloudFront automaticamente una richiesta HTTP a HTTPS (quando il valore di [Viewer Protocol Policy (Policy protocollo visualizzatore)](DownloadDistValuesCacheBehavior.md#DownloadDistValuesViewerProtocolPolicy) è **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 CloudFront evento attiva l'esecuzione di una funzione Lambda, la funzione deve *terminare* CloudFront prima di poter continuare.   
Ad esempio, se una funzione Lambda viene attivata da un evento di richiesta del CloudFront visualizzatore, CloudFront non restituirà una risposta al visualizzatore né inoltrerà la richiesta all'origine fino al termine dell'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.

# Scelta dell’evento per attivare la funzione
<a name="lambda-how-to-choose-event"></a>

Quando decidi quale CloudFront evento utilizzare per attivare una funzione Lambda, considera quanto segue:

**Voglio CloudFront memorizzare nella cache gli oggetti che vengono modificati da una funzione Lambda**  
Per memorizzare nella cache un oggetto che è stato modificato da una funzione Lambda in modo che CloudFront possa servire l'oggetto dall'edge location la prossima volta che viene richiesto, utilizzate l'evento *origin request* o *origin response*.   
In questo modo, si riduce il carico sull'origine, la latenza per le richieste successive e il costo della richiamata di Lambda@Edge sulle richieste successive.  
Ad esempio, se desideri aggiungere, rimuovere o modificare le intestazioni per gli oggetti restituiti dall'origine e desideri CloudFront inserire nella cache il risultato, utilizza l'evento origin response.

**Desidero che la funzione venga eseguita per ogni richiesta**  
Per eseguire la funzione per ogni richiesta CloudFront ricevuta per la distribuzione, utilizzate gli eventi di *richiesta del visualizzatore* o di *risposta del visualizzatore*.   
Gli eventi Origin request e origin response si verificano solo quando un oggetto richiesto non viene memorizzato nella cache in una edge location e CloudFront inoltra una richiesta all'origine.

**Desidero che funzione modifichi la chiave della cache**  
Per modificare un valore utilizzato per il caching, utilizza l’evento di *richiesta visualizzatore*.   
Ad esempio, se una funzione modifica l'URL per includere un abbreviazione di lingua nel percorso (ad esempio, perché l'utente ha scelto il linguaggio da un elenco a discesa), utilizza l'evento di richiesta visualizzatore:  
+ **URL nella richiesta del visualizzatore: index.html** https://example.com/en/
+ **URL se la richiesta proviene da un indirizzo IP in Germania**https://example.com/de/: index.html
Puoi anche utilizzare l'evento di richiesta visualizzatore se stai eseguendo il caching in base a cookie o intestazioni di richiesta.  
Se la funzione modifica i cookie o le intestazioni, configurate in modo CloudFront da inoltrare la parte applicabile della richiesta all'origine. Per ulteriori informazioni, consulta i seguenti argomenti:  
+ [Caching dei contenuti basati su cookie](Cookies.md)
+ [Caching dei contenuti in base alle intestazioni di richiesta](header-caching.md)

**La funzione influisce sulla risposta dall’origine**  
Per modificare la richiesta in un modo che influisca sulla risposta dall’origine, utilizza l’evento di *richiesta origine*.   
In genere, la maggior parte degli eventi di richiesta del visualizzatore non viene inoltrata all'origine. CloudFront risponde a una richiesta con un oggetto già presente nella cache edge. Se la funzione modifica la richiesta in base a un evento di richiesta di origine, CloudFront memorizza nella cache la risposta alla richiesta di origine modificata.

# Aggiunta di trigger a una funzione Lambda@Edge
<a name="lambda-edge-add-triggers-console"></a>

Puoi usare la AWS Lambda console o la CloudFront console Amazon per aggiungere un trigger alla tua funzione Lambda @Edge.

**Importante**  
Puoi creare trigger solo per le versioni numerate della funzione (non per **\$1LATEST**).

------
#### [ Lambda console ]<a name="lambda-edge-add-triggers-procedure"></a>

**Per aggiungere trigger per CloudFront eventi a una funzione Lambda @Edge**

1. Accedi a Console di gestione AWS e apri la AWS Lambda console all'indirizzo. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Nell'elenco Regione nella parte superiore della pagina, scegliere **Stati Uniti orientali (Virginia settentrionale)**.

1. Nella pagina **Functions (Funzioni)**, scegliere il nome della funzione per la quale si desidera aggiungere trigger.

1. Nella pagina **Panoramica della funzione**, scegli la scheda **Versioni**.

1. Selezionare la versione alla quale si desidera aggiungere trigger.

   Una volta selezionata la versione, il nome del pulsante viene modificato in **Version: \$1LATEST (Versione: \$1LATEST)** o **Version: (Versione:)** *version number (numero della versione)*.

1. Selezionare la scheda **Triggers** (Trigger).

1. Selezionare **Add trigger** (Aggiungi trigger).

1. Per la **configurazione di Trigger**, scegli **Seleziona una fonte****cloudfront**, inserisci, quindi scegli **CloudFront**.
**Nota**  
Se hai già creato uno o più trigger, CloudFront è il servizio predefinito.

1. Specificare i seguenti valori per indicare quando si desidera che la funzione Lambda venga eseguita.

   1. **Distribuzione**: scegli la distribuzione a cui aggiungere il trigger.

   1. **Comportamento cache**: scegli il comportamento cache che specifica gli oggetti sui quali eseguire la funzione.
**Nota**  
Se specifichi `*` per il comportamento cache, la funzione Lambda effettua la distribuzione al comportamento cache predefinito.

   1. **CloudFront evento**: scegli l'CloudFront evento che causa l'esecuzione della funzione.

   1. **Includi corpo**: seleziona questa casella di controllo per accedere al corpo della richiesta nella funzione. 

   1. **Conferma implementazione in Lambda@Edge**: seleziona questa casella di controllo per fare in modo che AWS Lambda replichi la funzione nelle Regioni AWS a livello globale.

1. Scegliere **Aggiungi**.

   La funzione inizia a elaborare le richieste per gli CloudFront eventi specificati quando viene distribuita la CloudFront distribuzione aggiornata. Per determinare se una distribuzione viene distribuita, seleziona **Distributions (Distribuzioni)** nel riquadro di navigazione. Quando una distribuzione viene implementata, il valore della colonna **Stato** per la distribuzione cambia da **Implementazione in corso** alla data e ora dell’implementazione.

------
#### [ CloudFront console ]<a name="lambda-create-functions-add-triggers-cloudfront-console-procedure"></a>

**Per aggiungere trigger per CloudFront eventi a una funzione Lambda @Edge**

1. Ottieni l'ARN della funzione Lambda a cui desideri aggiungere dei trigger:

   1. Accedi a Console di gestione AWS e apri la AWS Lambda console all'indirizzo. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

   1. Nell'elenco delle regioni nella parte superiore della pagina, scegli **US East (Virginia settentrionale)**.

   1. Nell'elenco delle funzioni, scegli il nome della funzione a cui intendi aggiungere i trigger.

   1. Nella pagina **Panoramica della funzione**, scegli la scheda **Versioni** e seleziona la versione numerata a cui aggiungere i trigger.

   1. Scegli il pulsante **Copia ARN** per copiare l’ARN negli appunti. L’ARN per la funzione Lambda è simile a:

      `arn:aws:lambda:us-east-1:123456789012:function:TestFunction:2`

      Il numero alla fine (**2** in questo esempio) è il numero di versione della funzione.

1. Apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Nell'elenco delle distribuzioni, scegli l'ID della distribuzione a cui intendi aggiungere i trigger.

1. Scegli la scheda **Behaviors** (Comportamenti).

1. Seleziona il comportamento cache a cui aggiungere i trigger e scegli **Modifica**.

1. Per **Associazioni funzione**, nell’elenco **Tipo di funzione**, scegli **Lambda@Edge** per specificare quando eseguire la funzione: per richieste visualizzatore, risposte visualizzatore, richieste origine o risposte origine. 

   Per ulteriori informazioni, consulta [Scelta dell’evento per attivare la funzione](lambda-how-to-choose-event.md).

1. Nella casella di testo **ARN/Nome funzione**, incolla l’ARN della funzione Lambda che desideri eseguire quando si verifica l’evento selezionato. Questo è il valore copiato dalla console Lambda.

1. Seleziona **Includi corpo** se desideri accedere al corpo della richiesta nella funzione.

   Si noti che non è necessario selezionare questa opzione se si desidera sostituire il corpo della richiesta.

1. Per eseguire la stessa funzione per più tipi di evento, ripeti le fasi 6 e 7.

1. Scegli **Save changes** (Salva modifiche).

1. Per aggiungere trigger a più comportamenti di cache per questa distribuzione, ripeti i passaggi da 5 a 10.

   La funzione inizia a elaborare le richieste per gli CloudFront eventi specificati quando viene distribuita la CloudFront distribuzione aggiornata. Per determinare se una distribuzione viene distribuita, seleziona **Distributions (Distribuzioni)** nel riquadro di navigazione. Quando una distribuzione viene implementata, il valore della colonna **Stato** per la distribuzione cambia da **Implementazione in corso** alla data e ora dell’implementazione.

------