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 atributosStatusCode
eStatusCodeReason
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: