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
Per utilizzarlo SnapStart, attiva SnapStart una funzione Lambda nuova o esistente. Quindi, pubblica e richiama una versione della funzione.
Argomenti
Attivazione SnapStart (console)
Attivare SnapStart una funzione
Aprire la pagina Functions
(Funzioni) della console Lambda. -
Scegliere il nome della funzione.
-
Scegli Configuration (Configurazione), quindi scegli Configurazione generale.
-
Nel pannello General configuration (Configurazione generale), scegli Edit (Modifica).
-
Nella pagina Modifica impostazioni di base SnapStart, scegli Versioni pubblicate.
-
Scegli Save (Salva).
-
Pubblica una versione della funzione. 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.
Attivazione SnapStart (AWS CLI)
SnapStart Attivare una funzione esistente
-
Aggiorna la configurazione della funzione eseguendo il comando update-function-configuration
con l'opzione --snap-start. aws lambda update-function-configuration \ --function-name my-function \ --snap-start ApplyOn=PublishedVersions -
Pubblica una versione della funzione con il comando publish-version
. aws lambda publish-version \ --function-name my-function -
Verificate che SnapStart sia attivata per la versione della funzione eseguendo il comando
get-function-configuration e specificando il numero di versione. Il seguente esempio specifica la versione 1. aws lambda get-function-configuration \ --function-name my-function:1Se la risposta indica che OptimizationStatus è
One State èActive, viene attivata ed SnapStart è disponibile un'istantanea per la versione della funzione specificata."SnapStart": { "ApplyOn": "PublishedVersions","OptimizationStatus": "On"},"State": "Active", -
Richiama la versione della funzione eseguendo il comando invoke
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.jsonL'cli-binary-formatopzione è 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 nella Guida per l'utente di AWS Command Line Interface versione 2.
Da attivare SnapStart quando si crea una nuova funzione
-
Crea una funzione eseguendo il comando create-function
con l'opzione --snap-start. Per --role, specificare il nome della risorsa Amazon (ARN) del tuo ruolo di esecuzione. aws lambda create-function \ --function-namemy-function\ --runtime "java25" \ --zip-file fileb://my-function.zip \ --handler my-function.handler \ --rolearn:aws:iam::111122223333:role/lambda-ex\ --snap-start ApplyOn=PublishedVersions -
Crea una versione con il comando publish-version
. aws lambda publish-version \ --function-namemy-function -
Verificate che SnapStart sia attivata per la versione della funzione eseguendo il comando
get-function-configuration e specificando il numero di versione. Il seguente esempio specifica la versione 1. aws lambda get-function-configuration \ --function-name my-function:1Se la risposta indica che OptimizationStatus è
One State èActive, viene attivata ed SnapStart è disponibile un'istantanea per la versione della funzione specificata."SnapStart": { "ApplyOn": "PublishedVersions","OptimizationStatus": "On"},"State": "Active", -
Richiama la versione della funzione eseguendo il comando invoke
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.jsonL'cli-binary-formatopzione è 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 nella Guida per l'utente di AWS Command Line Interface versione 2.
Attivazione SnapStart (API)
Attivare SnapStart
-
Esegui una delle seguenti operazioni:
-
Crea una nuova funzione con SnapStart Activated utilizzando l'azione CreateFunction API con il SnapStart parametro.
-
SnapStart Attiva una funzione esistente utilizzando l'UpdateFunctionConfigurationazione con il SnapStart parametro.
-
-
Pubblica una versione della funzione con l'PublishVersionazione. 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.
-
Verificate che SnapStart sia attivata per la versione della funzione utilizzando l'GetFunctionConfigurationazione. Specificate un numero di versione per confermare che SnapStart è attivata per quella versione. Se la risposta indica che OptimizationStatus è
One State èActive, SnapStart viene attivata ed è disponibile un'istantanea per la versione della funzione specificata."SnapStart": { "ApplyOn": "PublishedVersions","OptimizationStatus": "On"},"State": "Active", -
Richiama la versione della funzione con l'operazione Invoke.
Lambda SnapStart e stati delle funzioni
Quando si utilizza SnapStart, possono verificarsi i seguenti stati di funzione.
- Pending (In attesa)
-
Lambda sta inizializzando il codice e acquisendo uno snapshot dell'ambiente di esecuzione inizializzato. Qualsiasi chiamata o altra azione API che opera sulla versione della funzione ha esito negativo.
- Attivo
-
La creazione dello snapshot è completa ed è possibile richiamare la funzione. Per utilizzarla SnapStart, è necessario richiamare la versione della funzione pubblicata, non quella non pubblicata ($LATEST).
- Inattivo
-
Lo
Inactivestato 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 statoInactive.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
SnapStartNotReadyExceptione inizia a inizializzare un nuovo snapshot. Attendi che la versione della funzione raggiunga lo statoActive, 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
Lambda crea uno snapshot per ogni versione della funzione pubblicata. Per aggiornare uno snapshot, pubblica una nuova versione della funzione.
Utilizzo con SnapStart AWS SDK
Per effettuare chiamate AWS SDK dalla tua funzione, Lambda genera un set temporaneo di credenziali assumendo il ruolo di esecuzione della tua 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_URIeAWS_CONTAINER_AUTHORIZATION_TOKEN) invece delle variabili di ambiente della chiave di accesso. Ciò impedisce la scadenza delle credenziali prima che la funzione venga ripristinata.
Utilizzo con SnapStart CloudFormation, AWS SAM e AWS CDK
-
AWS CloudFormation: dichiara l'SnapStartentità nel tuo modello.
-
AWS Serverless Application Model (AWS SAM): Dichiara la SnapStart proprietà nel tuo modello.
-
AWS Cloud Development Kit (AWS CDK): Usa il SnapStartProperty tipo.
Eliminazione di snapshot
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 (Inattivo). Se si richiama la versione della funzione dopo 14 giorni, Lambda restituisce una risposta
SnapStartNotReadyExceptione inizia a inizializzare un nuovo snapshot. Attendi che la versione della funzione raggiunga lo stato Active (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).