

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

# Creazione di funzioni
<a name="create-function"></a>

La creazione di una funzione avviene in due fasi: 

1. Crea il codice della funzione come JavaScript. Puoi utilizzare l’esempio predefinito della console CloudFront o scriverne uno personalizzato. Per ulteriori informazioni, consulta i seguenti argomenti:
   + [Scrittura del codice della funzione](writing-function-code.md)
   + [CloudFront Funzioni, struttura degli eventi](functions-event-structure.md)
   + [CloudFront Esempi di funzioni per CloudFront](service_code_examples_cloudfront_functions_examples.md)

1. Utilizza CloudFront per creare la funzione e includere il codice. Il codice è presente all'interno della funzione (non come riferimento).

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

**Per creare una funzione**

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 **Crea funzione**.

1. Immetti un nome di funzione univoco all’interno dell’Account AWS, scegli la versione di JavaScript e infine seleziona **Continua**. Viene visualizzata la pagina dei dettagli relativa alla nuova funzione.
**Nota**  
Per utilizzare [coppie chiave-valore](kvs-with-functions.md) nella funzione, è necessario scegliere JavaScript runtime 2.0.

1. Nella sezione **Codice funzione**, scegli la scheda **Compila** e immetti il codice funzione. Il codice di esempio incluso nella scheda **Compila** illustra la sintassi di base del codice funzione.

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

1. Se il codice funzione utilizza coppie chiave-valore, è necessario associare un archivio di valori delle chiavi. 

   Puoi associare l’archivio di valori delle chiavi al momento della creazione della funzione. In alternativa, puoi associarlo in un secondo momento [aggiornando la funzione](update-function.md). 

   Per associare subito un archivio di valori delle chiavi, procedi come segue:
   + Nella sezione **Associa KeyValueStore**, scegli **Associa KeyValueStore esistente**.
   + Seleziona l’archivio di valori delle chiavi contenente le coppie chiave-valore nella funzione, quindi scegli **Associata KeyValueStore**.

   CloudFront associa immediatamente l'archivio alla funzione. Non è necessario salvare la funzione.

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

Con la CLI, in genere si crea prima il codice funzione in un file e poi si crea la funzione con AWS CLI.

**Per creare una funzione**

1. Crea il codice funzione in un file e memorizzalo in una directory a cui il computer può connettersi. 

1. Esegui il comando come mostrato nell'esempio. Questo esempio utilizza la notazione `fileb://` per passare il file. Include anche interruzioni di riga per rendere il comando più leggibile. 

   ```
   aws cloudfront create-function \
       --name MaxAge \
       --function-config '{"Comment":"Max Age 2 years","Runtime":"cloudfront-js-2.0","KeyValueStoreAssociations":{"Quantity":1,"Items":[{"KeyValueStoreARN":"arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}]}}' \
       --function-code fileb://function-max-age-v1.js
   ```
**Note**  
`Runtime`: la versione di JavaScript. Per utilizzare [coppie chiave-valore](kvs-with-functions.md) nella funzione, è necessario specificare la versione 2.0.
`KeyValueStoreAssociations`: se la funzione utilizza coppie chiave-valore, puoi associare l’archivio dei valori delle chiavi al momento della creazione della funzione. In alternativa, puoi associarlo in un secondo momento utilizzando `update-function`. Il valore `Quantity` è sempre `1` perché a ogni funzione può essere associato un solo archivio di valori delle chiavi.

   Se il comando viene eseguito correttamente, vedrai un output simile al seguente.

   ```
   ETag: ETVABCEXAMPLE
   FunctionSummary:
     FunctionConfig:
       Comment: Max Age 2 years
       Runtime: cloudfront-js-2.0
       KeyValueStoreAssociations= \
         {Quantity=1, \
         Items=[{KeyValueStoreARN='arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111'}]} \
     FunctionMetadata:
       CreatedTime: '2021-04-18T20:38:56.915000+00:00'
       FunctionARN: arn:aws:cloudfront::111122223333:function/MaxAge
       LastModifiedTime: '2023-11-19T20:38:56.915000+00:00'
       Stage: DEVELOPMENT
     Name: MaxAge
     Status: UNPUBLISHED
   Location: https://cloudfront.amazonaws.com/2020-05-31/function/arn:aws:cloudfront:::function/MaxAge
   ```

   La maggior parte delle informazioni viene ripetuta dalla richiesta. Altre informazioni vengono aggiunte da CloudFront.
**Note**  
`ETag`: questo valore cambia a ogni modifica dell’archivio di valori delle chiavi. Utilizza questo valore e il nome della funzione per fare riferimento alla funzione in futuro. Assicurati di utilizzare sempre l’`ETag` corrente.
`FunctionARN`: l’ARN per la funzione CloudFront.
111122223333: l’Account AWS.
`Stage`: la fase della funzione (`LIVE` o `DEVELOPMENT`). 
`Status`: lo stato della funzione (`PUBLISHED` o `UNPUBLISHED`).

------

Dopo aver creato la funzione, viene aggiunta alla fase `DEVELOPMENT`. Ti consigliamo di [provare la funzione](test-function.md) prima di [pubblicarla](publish-function.md). Dopo aver pubblicato la funzione, questa passa alla fase `LIVE`.