Stati funzione Lambda - AWS Lambda

Stati funzione Lambda

Per indicare quando la funzione è pronta per essere invocata, Lambda include un campo Stato nella configurazione della funzione per tutte le funzioni. State fornisce informazioni sullo stato corrente della funzione, incluso se sia possibile invocarla 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 le funzioni SnapStart. Per ulteriori informazioni, consulta Lambda SnapStart e stati delle funzioni.

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 per Lambda se utilizzi questo servizio e questo fornisce un accesso a bassa latenza allo spazio di archiviazione 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.

  • 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 reimplementare la funzione per ripristinarla allo stato attivo.

Se utilizzi flussi di lavoro di automazione basati su SDK o richiami direttamente le API di servizio di Lambda, prima dell'invocazione assicurati di controllare lo stato di una funzione per verificare che sia attiva. È possibile farlo utilizzando l'operazione API di Lambda GetFunction oppure configurando un waiter con il comando SDK AWS per 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'attributo LastUpdateStatus per tenere traccia dell'avanzamento di queste operazioni di aggiornamento. Mentre è in corso un aggiornamento (con "LastUpdateStatus": "InProgress"):

Esempio Risposta GetFunctionConfiguration.

L’esempio di seguito è il risultato di una richiesta GetFunctionConfiguration su una funzione in fase di aggiornamento.

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