Attivazione e gestione di Lambda SnapStart - AWS Lambda

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, attivalo SnapStart su una funzione Lambda nuova o esistente. Quindi, pubblica e richiama una versione della funzione.

Attivazione SnapStart (console)

Attivare SnapStart per una funzione
  1. Aprire la pagina Functions (Funzioni) della console Lambda.

  2. Scegliere il nome della funzione.

  3. Scegli Configuration (Configurazione), quindi scegli Configurazione generale.

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

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

  6. Seleziona Salva.

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

  8. Invoca la versione della funzione.

Attivazione SnapStart ()AWS CLI

Da attivare SnapStart per una funzione esistente
  1. Aggiorna la configurazione della funzione eseguendo il update-function-configurationcomando con l'--snap-startopzione.

    aws lambda update-function-configuration \ --function-name my-function \ --snap-start ApplyOn=PublishedVersions
  2. Pubblica una versione della funzione con il comando publish-version.

    aws lambda publish-version \ --function-name my-function
  3. Confermate che SnapStart sia attivata per la versione della funzione eseguendo il get-function-configurationcomando 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 OptimizationStatusis On e State èActive, allora SnapStart viene attivata e un'istantanea è disponibile per la versione della funzione specificata.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. 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.json

    L'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
  1. Crea una funzione eseguendo il comando create-function con l'opzione --snap-start. Per--role, specifica l'Amazon Resource Name (ARN) del tuo ruolo di esecuzione.

    aws lambda create-function \ --function-name my-function \ --runtime "java21" \ --zip-file fileb://my-function.zip \ --handler my-function.handler \ --role arn:aws:iam::111122223333:role/lambda-ex \ --snap-start ApplyOn=PublishedVersions
  2. Crea una versione con il comando publish-version.

    aws lambda publish-version \ --function-name my-function
  3. Conferma che SnapStart sia attivata per la versione della funzione eseguendo il get-function-configurationcomando 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 OptimizationStatusis On e State èActive, allora SnapStart viene attivata e un'istantanea è disponibile per la versione della funzione specificata.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. 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.json

    L'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
  1. Esegui una di queste operazioni:

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

  3. 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è On e State èActive, allora SnapStart viene attivata ed è disponibile un'istantanea per la versione della funzione specificata.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Richiama la versione della funzione con l'operazione Invoke.

Lambda SnapStart e stati funzionali

I seguenti stati di funzione possono verificarsi quando si utilizza SnapStart. Possono verificarsi anche quando Lambda ricicla periodicamente l'ambiente di esecuzione ed esegue nuovamente il codice di inizializzazione per una funzione configurata con. SnapStart

  • Pending: Lambda sta inizializzando il codice e acquisendo uno snapshot dell'ambiente di esecuzione inizializzato. Qualsiasi chiamata o altra API azione che opera sulla versione della funzione avrà esito negativo.

  • Active: la creazione di istantanee è completa ed è possibile richiamare la funzione. Per utilizzarla SnapStart, è necessario richiamare la versione pubblicata della funzione, non la versione non pubblicata ($). LATEST

  • Inactive: la versione della funzione non viene richiamata da 14 giorni. Quando la versione della funzione diventaInactive, Lambda elimina lo snapshot. 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. Lo Inactive stato può verificarsi anche quando Lambda esegue un riciclo periodico dell'ambiente di esecuzione. In questo caso, se la funzione non riesce a inizializzarsi, può entrare in uno stato. Inactive

  • Failed: 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. Lambda aggiorna automaticamente gli snapshot con le patch di runtime e sicurezza più recenti.

Usando SnapStart con AWS SDK for Java

Per effettuare AWS SDK chiamate 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 il codice direttamente inserito. SDK 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 Java 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.

Utilizzando SnapStart with AWS CloudFormationAWS 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.

  • 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 SnapStartNotReadyException e 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 alle istantanee eliminate in conformità al Regolamento generale sulla protezione dei dati (). GDPR