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 utilizzarla SnapStart, SnapStart attivala su una funzione evento Lambda nuova o esistente. Quindi, pubblica e richiama una versione della funzione.
Argomenti
Attivazione SnapStart (console)
Da attivare SnapStart per una funzione evento
Apri la pagina Event Functions
della console Lambda. -
Scegli il nome di una funzione di evento.
-
Scegli Configuration (Configurazione), quindi scegli Configurazione generale.
-
Nel pannello General configuration (Configurazione generale), scegli Edit (Modifica).
-
Nella pagina Modifica impostazioni di base, per SnapStart, scegli Versioni pubblicate.
-
Selezionare 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)
Da attivare SnapStart per una funzione evento 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 -
Confermate 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 mostra che OptimizationStatusis
One State èActive, allora viene attivata e un'istantanea SnapStart è disponibile 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 evento
-
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. Nota
Se utilizzi una funzione di immagine contenitore che utilizza immagini di base diverse dalle immagini di AWS base di Lambda per Java (versione 11+), Python (versione 3.12+) e.NET (versione 8+), segui le istruzioni riportate per rendere l'immagine compatibile con. SnapStart Implementazione di SnapStart hook per le immagini dei contenitori SnapStart
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 -
Conferma 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 mostra che OptimizationStatusis
One State èActive, allora viene attivata e un'istantanea SnapStart è disponibile 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 evento con SnapStart activated utilizzando l'azione CreateFunctionAPI con il SnapStartparametro.
-
SnapStart Attiva una funzione evento esistente utilizzando l'UpdateFunctionConfigurationazione con il SnapStartparametro.
-
-
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.
-
Verifica 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 mostra che OptimizationStatusè
One State èActive, allora 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.
Stati Lambda SnapStart e Event Function
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 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 la versione 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 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_URIandAWS_CONTAINER_AUTHORIZATION_TOKEN) anziché le 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 modello.
-
AWS Serverless Application Model (AWS SAM): dichiara la SnapStartproprietà nel modello.
-
AWS Cloud Development Kit (AWS CDK): Usa il SnapStartPropertytipo.
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).