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.

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. Isso permite inspecionar, depurar e reprocessar, opcionalmente, 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, as execuções duráveis não são repetidas automaticamente em caso de falha, então o DLQ é sua rede de segurança para capturar os eventos que levaram a execuções com falhas permanentes.

  • 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