View a markdown version of this page

Práticas recomendadas para funções duráveis do Lambda - AWS Lambda

Práticas recomendadas para funções duráveis do Lambda

As funções duráveis usam um modelo de execução baseado em reprodução que exige práticas de programação diferentes das funções do Lambda tradicionais. Para obter orientação sobre como escrever e testar códigos de fluxo de trabalho durável, consulte as Práticas recomendadas no Guia do desenvolvedor do SDK de execução durável da AWS.

As recomendações a seguir são práticas recomendadas para implantar, invocar e monitorar funções duráveis do Lambda.

Versões e aliases das funções

Invoque funções com números de versão ou aliases para fixar execuções em versões de código específicas. Certifique-se de que as novas versões do código possam tratar o estado das versões mais antigas. Não renomeie etapas nem altere seu comportamento de forma a interromper a reprodução. Se você renomear uma etapa ou alterar seu comportamento enquanto as execuções estão em andamento, essas execuções podem deixar de ser retomadas ou produzir resultados incorretos. Isso acontece porque o runtime não consegue mais combinar o estado salvo com a definição da etapa esperada.

Monitoramento

Habilite o registro em log estruturado com IDs de execução e nomes de etapas. Configure os alarmes do CloudWatch para as taxas de erro e a duração da execução. Use rastreamento para identificar gargalos. Para obter orientação detalhada, consulte Monitoramento e depuração.

Tratamento de erros

Além de configurar estratégias de repetição para falhas transitórias, configure uma fila de mensagens não entregues (DLQ) em sua função durável para capturar os eventos de execuções que falharam permanentemente. Quando uma execução durável atinge um estado terminal (FAILED, STOPPED ou TIMED_OUT) após uma invocação assíncrona, o Lambda envia o evento de acionamento original ao DLQ. Dessa forma, você pode inspecionar, depurar e, opcionalmente, reprocessar eventos com falha sem perdê-los.

Para configurar um DLQ, defina a propriedade DeadLetterConfig em sua função como uma fila do Amazon SQS ou um ARN de tópico do Amazon SNS. Para obter mais informações, consulte Filas de mensagens não entregues.

Siga estas práticas recomendadas para tratar erros com funções duráveis:

  • Configure uma DLQ para invocações assíncronas: sempre anexe uma fila de mensagens não entregues ao invocar funções duráveis de forma assíncrona. Diferentemente das funções padrão do Lambda, o serviço não repete automaticamente execuções duráveis em caso de falha. Um DLQ configurado corretamente captura eventos que levaram a execuções com falha permanente. Verifique se o DLQ tem as permissões corretas e a capacidade suficiente para receber mensagens.

  • Use as estratégias de repetição nas etapas: configure as estratégias de repetição explícitas com o recuo apropriado para falhas transitórias. Para obter orientação sobre como configurar novas tentativas, consulte Repetições para funções duráveis.

  • Combine DLQs com notificações do EventBridge: use as regras do EventBridge para alertar sobre alterações no status FAILED, STOPPED e TIMED_OUT para obter visibilidade em tempo real e use um DLQ para preservar a carga útil original do evento para análise ou reprocessamento posterior.

  • Monitore a profundidade do DLQ: crie um alarme do CloudWatch na métrica ApproximateNumberOfMessagesVisible para que seu DLQ detecte quando as falhas estiverem se acumulando.

Recursos relacionados