

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

# Attivazione e gestione di Lambda SnapStart
<a name="snapstart-activate"></a>

Per utilizzarlo SnapStart, attivalo SnapStart su una funzione Lambda nuova o esistente. Quindi, pubblica e richiama una versione della funzione.

**Topics**
+ [Attivazione SnapStart (console)](#snapshot-console)
+ [Attivazione SnapStart ()AWS CLI](#snapshot-cli)
+ [Attivazione SnapStart (API)](#snapshot-api)
+ [Lambda SnapStart e stati funzionali](#snapstart-function-states)
+ [Aggiornamento di uno snapshot](#update-snapshot)
+ [Utilizzo con SnapStart AWS SDKs](#snapstart-credentials)
+ [Utilizzando SnapStart with CloudFormation, e AWS SAM AWS CDK](#snapstart-cfn-sam)
+ [Eliminazione di snapshot](#snapshot-delete)

## Attivazione SnapStart (console)
<a name="snapshot-console"></a>

**Attivare SnapStart per una funzione**

1. Aprire la pagina [Functions](https://console.aws.amazon.com/lambda/home#/functions) (Funzioni) della console Lambda.

1. Scegliere il nome della funzione.

1. Scegli **Configuration** (Configurazione), quindi scegli **Configurazione generale**.

1. Nel pannello **General configuration** (Configurazione generale), scegli **Edit** (Modifica).

1. Nella pagina **Modifica impostazioni di base**, per **SnapStart**, scegli **Versioni pubblicate**.

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

1. [Pubblica una versione della funzione](configuration-versions.md#configuration-versions-config). Lambda inizializza il codice, crea uno snapshot dell'ambiente di esecuzione inizializzato e quindi memorizza nella cache lo snapshot per l'accesso a bassa latenza.

1. [Invoca la versione della funzione](configuration-versions.md#versioning-versions-using).

## Attivazione SnapStart ()AWS CLI
<a name="snapshot-cli"></a>

**Da attivare SnapStart per una funzione esistente**

1. Aggiorna la configurazione della funzione eseguendo il [update-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html)comando con l'**--snap-start**opzione.

   ```
   aws lambda update-function-configuration \
     --function-name my-function \
     --snap-start ApplyOn=PublishedVersions
   ```

1. Pubblica una versione della funzione con il comando [publish-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/publish-version.html).

   ```
   aws lambda publish-version \
     --function-name my-function
   ```

1. Confermate che SnapStart sia attivata per la versione della funzione eseguendo il [get-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/get-function-configuration.html)comando e specificando il numero di versione. Il seguente esempio specifica la versione 1.

   ```
   aws lambda get-function-configuration \
     --function-name my-function:1
   ```

   Se la risposta mostra che [OptimizationStatus](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStartResponse.html)is `On` e [State](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html#lambda-GetFunctionConfiguration-response-State) è`Active`, allora SnapStart viene attivata e un'istantanea è disponibile per la versione della funzione specificata.

   ```
   "SnapStart": { 
       "ApplyOn": "PublishedVersions",
       "OptimizationStatus": "On"
    },
    "State": "Active",
   ```

1. Richiama la versione della funzione eseguendo il comando [invoke](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/invoke.html) e specificando la versione. L'esempio seguente richiama la versione 1.

   ```
   aws lambda invoke \
     --cli-binary-format raw-in-base64-out \
     --function-name my-function:1 \
     --payload '{ "name": "Bob" }' \
     response.json
   ```

   L'**cli-binary-format**opzione è obbligatoria se si utilizza la AWS CLI versione 2. Per rendere questa impostazione come predefinita, esegui `aws configure set cli-binary-format raw-in-base64-out`. Per ulteriori informazioni, consulta la pagina [AWS CLI supported global command line options](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) nella *Guida per l'utente di AWS Command Line Interface versione 2*.

**Da attivare SnapStart quando si crea una nuova funzione**

1. Crea una funzione eseguendo il comando [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) con l'opzione **--snap-start**. Per **--role**, specificare il nome della risorsa Amazon (ARN) del tuo [ruolo di esecuzione](lambda-intro-execution-role.md).

   ```
   aws lambda create-function \
     --function-name my-function \
     --runtime "java25" \
     --zip-file fileb://my-function.zip \
     --handler my-function.handler \
     --role arn:aws:iam::111122223333:role/lambda-ex \
     --snap-start ApplyOn=PublishedVersions
   ```

1. Crea una versione con il comando [publish-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/publish-version.html).

   ```
   aws lambda publish-version \
     --function-name my-function
   ```

1. Confermate che SnapStart sia attivata per la versione della funzione eseguendo il [get-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/get-function-configuration.html)comando e specificando il numero di versione. Il seguente esempio specifica la versione 1.

   ```
   aws lambda get-function-configuration \
     --function-name my-function:1
   ```

   Se la risposta mostra che [OptimizationStatus](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStartResponse.html)is `On` e [State](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html#lambda-GetFunctionConfiguration-response-State) è`Active`, allora SnapStart viene attivata e un'istantanea è disponibile per la versione della funzione specificata.

   ```
   "SnapStart": { 
        "ApplyOn": "PublishedVersions",
        "OptimizationStatus": "On"
     },
     "State": "Active",
   ```

1. Richiama la versione della funzione eseguendo il comando [invoke](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/invoke.html) e specificando la versione. L'esempio seguente richiama la versione 1.

   ```
   aws lambda invoke \
     --cli-binary-format raw-in-base64-out \
     --function-name my-function:1 \
     --payload '{ "name": "Bob" }' \
     response.json
   ```

   L'**cli-binary-format**opzione è obbligatoria se si utilizza la AWS CLI versione 2. Per rendere questa impostazione come predefinita, esegui `aws configure set cli-binary-format raw-in-base64-out`. Per ulteriori informazioni, consulta la pagina [AWS CLI supported global command line options](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) nella *Guida per l'utente di AWS Command Line Interface versione 2*.

## Attivazione SnapStart (API)
<a name="snapshot-api"></a>

**Attivare SnapStart**

1. Esegui una delle seguenti operazioni:
   + Crea una nuova funzione con SnapStart activated utilizzando l'azione [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)API con il [SnapStart](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStart.html)parametro.
   + Attiva SnapStart per una funzione esistente utilizzando l'[UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)azione con il [SnapStart](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStart.html)parametro.

1. Pubblica una versione della funzione con l'[PublishVersion](https://docs.aws.amazon.com/lambda/latest/api/API_PublishVersion.html)azione. Lambda inizializza il codice, crea uno snapshot dell'ambiente di esecuzione inizializzato e quindi memorizza nella cache lo snapshot per l'accesso a bassa latenza.

1. Verifica che SnapStart sia attivata per la versione della funzione utilizzando l'[GetFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html)azione. Specificate un numero di versione per confermare che SnapStart è attivata per quella versione. Se la risposta mostra che [OptimizationStatus](https://docs.aws.amazon.com/lambda/latest/api/API_SnapStartResponse.html)è `On` e [State](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html#lambda-GetFunctionConfiguration-response-State) è`Active`, allora SnapStart viene attivata ed è disponibile un'istantanea per la versione della funzione specificata.

   ```
   "SnapStart": { 
           "ApplyOn": "PublishedVersions",
           "OptimizationStatus": "On"
        },
        "State": "Active",
   ```

1. Richiama la versione della funzione con l'operazione [Invoke](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html).

## Lambda SnapStart e stati funzionali
<a name="snapstart-function-states"></a>

I seguenti stati di funzione possono verificarsi quando si utilizza SnapStart.

**Pending (In attesa)**  
Lambda sta inizializzando il codice e acquisendo uno snapshot dell'ambiente di esecuzione inizializzato. Qualsiasi chiamata o altre operazioni API che operano sulla versione della funzione avranno esito negativo.

**Attivo**  
La creazione dello snapshot è completa ed è possibile richiamare la funzione. Per utilizzarla SnapStart, è necessario richiamare la versione della funzione pubblicata, non la versione non pubblicata (\$1LATEST).

**Inattivo**  
Lo `Inactive` stato può verificarsi quando Lambda rigenera periodicamente le istantanee delle funzioni per applicare gli aggiornamenti software. In questo caso, se la funzione non riesce a inizializzarsi, può entrare in uno stato `Inactive`.  
Per le funzioni che utilizzano un runtime Java, Lambda elimina gli snapshot dopo 14 giorni senza alcuna invocazione. Se si richiama la versione della funzione dopo 14 giorni, Lambda restituisce una risposta `SnapStartNotReadyException` e inizia a inizializzare un nuovo snapshot. Attendi che la versione della funzione raggiunga lo stato `Active`, quindi richiamala di nuovo.

**Non riuscito**  
Lambda ha riscontrato un errore durante l'esecuzione del codice di inizializzazione o la creazione dello snapshot.

## Aggiornamento di uno snapshot
<a name="update-snapshot"></a>

Lambda crea uno snapshot per ogni versione della funzione pubblicata. Per aggiornare uno snapshot, pubblica una nuova versione della funzione.

## Utilizzo con SnapStart AWS SDKs
<a name="snapstart-credentials"></a>

Per effettuare chiamate AWS SDK dalla tua funzione, Lambda genera un set temporaneo di credenziali assumendo il ruolo di esecuzione della funzione. Queste credenziali sono disponibili come variabili d'ambiente durante l'invocazione della funzione. Non è necessario fornire le credenziali per l'SDK direttamente nel codice. Per impostazione predefinita, la catena di fornitori di credenziali controlla in sequenza ogni punto in cui è possibile impostare le credenziali e seleziona il primo disponibile, in genere le variabili d'ambiente (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN`).

**Nota**  
Quando SnapStart è attivato, il runtime Lambda utilizza automaticamente le credenziali del contenitore (`AWS_CONTAINER_CREDENTIALS_FULL_URI`and`AWS_CONTAINER_AUTHORIZATION_TOKEN`) anziché le variabili di ambiente della chiave di accesso. Ciò impedisce la scadenza delle credenziali prima che la funzione venga ripristinata.

## Utilizzando SnapStart with CloudFormation, e AWS SAM AWS CDK
<a name="snapstart-cfn-sam"></a>
+ **AWS CloudFormation:** dichiara l'[SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html)entità nel modello.
+ **AWS Serverless Application Model (AWS SAM):** dichiara la [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-snapstart)proprietà nel modello.
+ **AWS Cloud Development Kit (AWS CDK):** Usa il [SnapStartProperty](https://docs.aws.amazon.com/cdk/api/v2/java/software/amazon/awscdk/services/lambda/CfnFunction.SnapStartProperty.html)tipo.

## Eliminazione di snapshot
<a name="snapshot-delete"></a>

Lambda elimina gli snapshot quando:
+ Si elimina la funzione o la versione della funzione.
+ **Solo runtime Java**: non si richiama la versione della funzione per 14 giorni. Dopo 14 giorni senza una chiamata, la versione della funzione passa allo stato [Inactive](#snapstart-function-states) (Inattivo). Se si richiama la versione della funzione dopo 14 giorni, Lambda restituisce una risposta `SnapStartNotReadyException` e inizia a inizializzare un nuovo snapshot. Attendi che la versione della funzione raggiunga lo stato [Active](#snapstart-function-states) (Attivo), quindi richiamala di nuovo.

Lambda rimuove tutte le risorse associate agli snapshot eliminati in conformità con il Regolamento generale sulla protezione dei dati (GDPR).