

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

# Associazione delle funzioni alle distribuzioni
<a name="associate-function"></a>

Per utilizzare una funzione con una distribuzione, è necessario associare la funzione a uno o più comportamenti cache nella distribuzione. Puoi associare una funzione a più comportamenti della cache in più distribuzioni.

Puoi associare una funzione con uno qualsiasi di questi elementi:
+ Un comportamento cache esistente
+ Un nuovo comportamento cache in una distribuzione esistente
+ Un nuovo comportamento cache in una nuova distribuzione

Quando associ una funzione a un comportamento di cache, è necessario scegliere un *tipo di evento*. Il tipo di evento determina quando CloudFront esegue la funzione. 

Puoi scegliere i seguenti tipi di evento:
+ **Richiesta visualizzatore**: la funzione viene eseguita quando CloudFront riceve una richiesta da un visualizzatore.
+ **Risposta visualizzatore**: la funzione viene eseguita prima che CloudFront restituisca una risposta al visualizzatore.

Non puoi utilizzare tipi di eventi rivolti all’origine (*richiesta origine* e *risposta origine*) con Funzioni CloudFront. Puoi invece usare Lambda@Edge. Per ulteriori informazioni, consulta [CloudFront eventi che possono attivare una funzione Lambda @Edge](lambda-cloudfront-trigger-events.md). 

**Nota**  
Prima di associare una funzione, è necessario [pubblicarla](publish-function.md) nella fase `LIVE`.

Puoi associare una funzione a una distribuzione nella console CloudFront o tramite AWS Command Line Interface (AWS CLI). Nella procedura seguente viene illustrato come associare una funzione a un comportamento della cache esistente. 

------
#### [ Console ]

**Come associare una funzione a un comportamento cache esistente**

1. Accedi alla console CloudFront all’indirizzo [https://console.aws.amazon.com/cloudfront/v4/home#/functions](https://console.aws.amazon.com/cloudfront/v4/home#/functions) e scegli la pagina **Funzioni**.

1. Scegli la funzione che desideri associare.

1. Nella pagina **Funzioni**, seleziona la scheda **Pubblica**.

1. Scegli **Funzione Pubblica**.

1. Scegliere **Add Association (Aggiungi associazione)**. Nella finestra di dialogo che viene visualizzata, scegli una distribuzione, un tipo di evento e/o un comportamento cache. 

   Per il tipo di evento, scegli quando eseguire questa funzione:
   + **Richiesta visualizzatore**: esegui la funzione ogni volta che CloudFront riceve una richiesta.
   + **Risposta visualizzatore**: esegui la funzione ogni volta che CloudFront restituisce una risposta.

1. Per salvare la configurazione, scegli **Aggiungi associazione**.

CloudFront associa la distribuzione alla funzione. Attendere alcuni minuti affinché la distribuzione associata finisca la distribuzione. Per controllare l’avanzamento, puoi scegliere **Visualizza distribuzione** nella pagina dei dettagli della funzione.

------
#### [ CLI ]

**Come associare una funzione a un comportamento cache esistente**

1. Aprire una finestra a riga di comando.

1. Inserisci il comando seguente per salvare la configurazione di distribuzione per la distribuzione di cui desideri associare il comportamento cache a una funzione. Questo comando salva la configurazione di distribuzione in un file denominato `dist-config.yaml`. Per utilizzare questo comando, effettua le seguenti operazioni:
   + Sostituisci *`DistributionID`* con l'ID della distribuzione.
   + Esegui il comando su una riga. Nell'esempio vengono fornite interruzioni di riga per rendere l'esempio più leggibile.

   ```
   aws cloudfront get-distribution-config \
       --id DistributionID \
       --output yaml > dist-config.yaml
   ```

   Se il comando viene eseguito correttamente, l'AWS CLI non restituisce alcun output.

1. Apri il file denominato `dist-config.yaml` creato. Modifica il file per apportare le modifiche seguenti.

   1. Rinominare il campo `ETag` in `IfMatch`, ma non modificare il valore del campo.

   1. Nel comportamento della cache, trova l'oggetto denominato `FunctionAssociations`. Aggiorna questo oggetto per aggiungere un'associazione di funzioni. La sintassi YAML per un'associazione di funzioni è simile all'esempio seguente.
      + L'esempio seguente mostra un oggetto evento Richiesta visualizzatore (trigger). Per utilizzare un tipo di evento Risposta del visualizzatore, sostituisci `viewer-request` con `viewer-response`.
      + Sostituisci *`arn:aws:cloudfront::111122223333:function/ExampleFunction`* con il nome della risorsa Amazon (ARN) della funzione che stai associando a questo comportamento della cache. Per ottenere l’ARN della funzione, puoi utilizzare il comando **aws cloudfront list-functions**.

      ```
      FunctionAssociations:
        Items:
          - EventType: viewer-request
            FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
        Quantity: 1
      ```

   1. Dopo aver apportato queste modifiche, salva il file.

1. Utilizza il comando seguente per aggiornare la distribuzione, aggiungendo l'associazione di funzioni. Per utilizzare questo comando, effettua le seguenti operazioni:
   + Sostituisci *`DistributionID`* con l'ID della distribuzione.
   + Esegui il comando su una riga. Nell'esempio vengono fornite interruzioni di riga per rendere l'esempio più leggibile.

   ```
   aws cloudfront update-distribution \
       --id DistributionID \
       --cli-input-yaml file://dist-config.yaml
   ```

   Se il comando ha esito positivo, viene visualizzato un output simile al seguente che descrive la distribuzione appena aggiornata con l'associazione di funzioni. L'output di esempio seguente è stato troncato per una maggiore leggibilità.

   ```
   Distribution:
     ARN: arn:aws:cloudfront::111122223333:distribution/EBEDLT3BGRBBW
     ... truncated ...
     DistributionConfig:
       ... truncated ...
       DefaultCacheBehavior:
         ... truncated ...
         FunctionAssociations:
           Items:
           - EventType: viewer-request
             FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
           Quantity: 1
         ... truncated ...
     DomainName: d111111abcdef8.cloudfront.net
     Id: EDFDVBD6EXAMPLE
     LastModifiedTime: '2021-04-19T22:39:09.158000+00:00'
     Status: InProgress
   ETag: E2VJGGQEG1JT8S
   ```

------

Lo `Status` della distribuzione cambia in `InProgress` mentre la distribuzione viene ridistribuita. Quando la nuova configurazione di distribuzione raggiunge una posizione edge CloudFront, tale posizione edge inizia a utilizzare la funzione associata. Quando la distribuzione è completamente distribuita, `Status` torna a `Deployed`. Ciò indica che la funzione CloudFront associata è attiva in tutte le posizioni edge CloudFront in tutto il mondo. In genere sono necessari pochi minuti.