Estados da função do Lambda - AWS Lambda

Estados da função do Lambda

O Lambda inclui um campo de estado na configuração da função para todas as funções para indicar quando a função está pronta para ser invocada. State fornece informações sobre o status atual da função, incluindo se você pode invocá-la com êxito. Os estados de função não alteram o comportamento de invocações de função ou como sua função executa o código. Os estados da função incluem:

  • Pending – Depois que o Lambda cria a função, ele define o estado como pendente. Enquanto estiver em estado pendente, o Lambda tenta criar ou configurar recursos para a função, como recursos de VPC ou EFS. O Lambda não invoca uma função durante o estado pendente. As invocações ou outras ações de API que operam na função falharão.

  • Active – Sua função transita para o estado ativo depois que o Lambda concluir a configuração e o provisionamento de recursos. As funções só podem ser invocadas com êxito enquanto estiverem ativas.

  • Failed – Indica que a configuração de recursos ou o provisionamento encontrou um erro.

  • Inactive – Uma função torna-se inativa quando está ociosa tempo suficiente para que o Lambda recupere os recursos externos que foram configurados para ela. Quando tenta invocar uma função que está inativa, a invocação falha e o Lambda define a função para o estado pendente até que os recursos da função são recriados. Se o Lambda não conseguir recriar os recursos, a função voltará ao estado inativo. Se sua função estiver presa no estado inativo, consulte os atributos StatusCode e StatusCodeReason da função para obter mais informações de solução de problemas. Talvez seja necessário resolver os erros e reimplantar a função para que ela volte ao estado ativo.

Se você estiver utilizando fluxos de trabalho de automação baseados em SDK ou chamando as APIs de serviço do Lambda diretamente, verifique o estado de uma função antes da invocação para conferir se ela está ativa. Você pode fazer isso com a ação da API do Lambda GetFunction ou configurando um waiter usando o AWS SDK for Java 2.0.

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

A seguinte saída deverá ser mostrada:

[ "Active", "Successful" ]

Ocorre falha nas seguintes operações enquanto a criação da função está pendente:

Estados de função durante a atualização

O Lambda fornece contexto adicional para funções submetidas a atualizações com o atributo LastUpdateStatus, que pode ter os seguintes status:

  • InProgress – Uma atualização está acontecendo em uma função existente. Enquanto uma atualização de função está em andamento, as invocações vão para o código e configuração anteriores da função.

  • Successful – A atualização foi concluída. Assim que o Lambda terminar a atualização, permanecerá definido até uma nova atualização.

  • Failed – Falha na atualização da função. O Lambda aborta a atualização e o código e a configuração anteriores da função permanecem disponíveis.

O seguinte é o resultado de get-function-configuration em uma função submetida a uma atualização.

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

FunctionConfiguration tem dois outros atributos, LastUpdateStatusReason e LastUpdateStatusReasonCode para ajudar a solucionar os problemas com os de atualização.

Ocorre falha nas seguintes operações enquanto uma atualização assíncrona está em andamento: