View a markdown version of this page

Configuração de funções duráveis do Lambda - AWS Lambda

Configuração de funções duráveis do Lambda

Configurações de execução duráveis controlam por quanto tempo sua função do Lambda pode ser executada e por quanto tempo o serviço retém o histórico de execução. Defina essas configurações para permitir a execução durável de sua função.

Habilitação da execução durável

Configure o objeto DurableConfig ao criar sua função para definir o tempo limite de execução e a retenção do histórico. Você só pode habilitar a execução durável ao criar uma função. Não é possível habilitá-la em funções existentes.

AWS CLI
aws lambda create-function \ --function-name my-durable-function \ --runtime nodejs24.x \ --role arn:aws:iam::123456789012:role/my-durable-role \ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 30}'
CloudFormation
Resources: MyDurableFunction: Type: AWS::Lambda::Function Properties: FunctionName: my-durable-function Runtime: nodejs24.x Handler: index.handler Code: ZipFile: | // Your durable function code DurableConfig: ExecutionTimeout: 3600 RetentionPeriodInDays: 30

Parâmetros de configuração:

  • ExecutionTimeout — O tempo máximo em segundos que uma execução durável pode ser executada antes que o Lambda interrompa a execução. Esse tempo limite se aplica a toda a execução durável, e não às invocações de funções individuais. Intervalo válido: de 1 a 31622400.

  • RetentionPeriodInDays — O número de dias para reter o histórico de execução após a conclusão de uma execução duradoura. Após esse período, o histórico de execução não estará mais disponível por meio da API GetDurableExecutionHistory. Intervalo válido: de 1 a 90.

Para ver a referência completa da API, vejaDurableConfig na Referência da API Lambda.

Práticas recomendadas para configuração

Siga estas práticas recomendadas ao configurar funções duráveis para uso em produção:

  • Defina tempos limite de execução adequados: configure ExecutionTimeout com base na duração máxima esperada do seu fluxo de trabalho. Não defina prazos desnecessariamente longos, pois eles afetam a alocação de custos e recursos.

  • Equilibre a retenção com os custos de armazenamento: defina RetentionPeriodInDays com base em seus requisitos de depuração e auditoria. Períodos de retenção mais longos aumentam os custos de armazenamento.

  • Monitore o tamanho do estado: objetos de estado grandes aumentam os custos de armazenamento e podem afetar a performance. Mantenha o estado mínimo e use armazenamento externo para grandes volumes de dados.

  • Configure o registro em log apropriado: habilite o registro em log detalhado para solucionar problemas de fluxos de trabalho de longa duração, mas considere o impacto no volume de registros e nos custos.

Exemplo de configuração de produção:

{ "ExecutionTimeout": 86400, "RetentionPeriodInDays": 7 }

Este exemplo define um tempo limite de execução de 24 horas (86.400 segundos) com um período de retenção de sete dias, o que equilibra a visibilidade da depuração com os custos de armazenamento para a maioria das cargas de trabalho de produção.