View a markdown version of this page

Stati funzione Lambda - 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à.

Stati funzione Lambda

Lambda include un campo State nella configurazione della funzione per tutte le funzioni per indicare quando la funzione è pronta per essere richiamata. Statefornisce informazioni sullo stato corrente della funzione, incluso se è possibile richiamarla correttamente. Gli stati della funzione non modificano il comportamento delle chiamate della funzione o il modo in cui la funzione esegue il codice.

Nota

Le definizioni dello stato delle funzioni differiscono leggermente per SnapStartle funzioni. Per ulteriori informazioni, consulta Lambda SnapStart e stati funzionali.

In molti casi, una tabella DynamoDB è il modo ideale per mantenere lo stato tra le chiamate, poiché fornisce un accesso ai dati a bassa latenza e può essere scalata con il servizio Lambda. Puoi anche archiviare dati in Amazon EFS for Lambda se utilizzi questo servizio e questo fornisce un accesso a bassa latenza allo storage del file system.

Gli stati delle funzioni includono:

  • Pending – Dopo che Lambda ha creato la funzione, imposta lo stato su sospeso. Mentre lo stato è in sospeso, Lambda tenta di creare o configurare le risorse per la funzione, ad esempio le risorse VPC o EFS. Lambda non richiama una funzione durante lo stato in sospeso. Qualsiasi chiamata o altre operazioni API che operano sulla funzione avranno esito negativo.

  • Active – La funzione passa allo stato attivo dopo che Lambda ha completato la configurazione e il provisioning delle risorse. Le funzioni possono essere richiamate correttamente solo quando sono attive.

  • Failed – Indica che la configurazione o il provisioning delle risorse ha riscontrato un errore. Quando la creazione della funzione fallisce, Lambda imposta lo stato della funzione su Fallito ed è necessario eliminare e ricreare la funzione.

  • Inactive – Una funzione diventa inattiva quando è stata inattiva abbastanza a lungo perché Lambda recuperi le risorse esterne configurate per essa. Quando si tenta di richiamare una funzione che è inattiva, la chiamata non riesce e Lambda imposta la funzione sullo stato in sospeso fino a quando le risorse della funzione non vengono ricreate. Se Lambda non riesce a ricreare le risorse, la funzione viene reimpostata sullo stato inattivo. Potrebbe essere necessario risolvere eventuali errori e ridistribuire la funzione per ripristinarla allo stato attivo.

    Una funzione passa allo Inactive stato anche se Lambda perde l'accesso all'artefatto di origine della funzione. Ciò si applica alle funzioni di immagine del contenitore in cui l'immagine viene eliminata da Amazon ECR o le autorizzazioni vengono revocate e alle funzioni.zip che utilizzano lo storage di codice S3 autogestito in cui l'oggetto di origine viene eliminato o le autorizzazioni della bucket policy vengono revocate. Per ripristinare la funzione, ripristina l'accesso all'artefatto di origine e aggiorna la funzione.

Se utilizzi flussi di lavoro di SDK-based automazione o chiami direttamente le API di servizio di Lambda, assicurati di controllare lo stato di una funzione prima della chiamata per verificare che sia attiva. Puoi farlo con l'azione GetFunctionAPI Lambda o configurando un cameriere utilizzando l'SDK for AWS Java 2.0.

aws lambda get-function --function-name my-function --query 'Configuration.[State, LastUpdateStatus]'

Verrà visualizzato l’output seguente:

[
 "Active",
 "Successful" 
]

Le operazioni seguenti non riescono mentre la creazione della funzione è in attesa:

Stati delle funzioni durante gli aggiornamenti

Lambda prevede due operazioni per l'aggiornamento delle funzioni:

Lambda utilizza l'LastUpdateStatusattributo per tenere traccia dell'avanzamento di queste operazioni di aggiornamento. Mentre è in corso un aggiornamento (quando"LastUpdateStatus": "InProgress"):

Quando un aggiornamento fallisce (quando"LastUpdateStatus": "Failed"):

  • Lo stato della funzione rimaneActive.

  • Le chiamate continuano a utilizzare il codice e la configurazione precedenti della funzione.

Esempio GetFunctionConfiguration risposta

L'esempio seguente è il risultato della GetFunctionConfigurationrichiesta di una funzione in fase di aggiornamento.

{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function", "Runtime": "nodejs24.x", "VpcConfig": { "SubnetIds": [ "subnet-071f712345678e7c8", "subnet-07fd123456788a036", "subnet-0804f77612345cacf" ], "SecurityGroupIds": [ "sg-085912345678492fb" ], "VpcId": "vpc-08e1234569e011e83" }, "State": "Active", "LastUpdateStatus": "InProgress", ... }