Testando e depurando funções duráveis - AWS Serverless Application Model

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Testando e depurando funções duráveis

Testar e depurar funções duráveis localmente funcionam de forma semelhante às funções normais do Lambda, com suporte automático para checkpoint e replay. Este guia aborda cenários comuns de teste e técnicas de solução de problemas.

Fluxo de trabalho de teste local

Ao testar funções duráveis localmente, o fluxo de trabalho difere das funções normais do Lambda:

Fluxo de trabalho durável de testes de funções
  1. Crie seu aplicativo:

    $ sam build
  2. Invoque sua função durável:

    $ sam local invoke MyDurableFunction --durable-execution-name test
  3. Verifique o histórico de execução, se necessário:

    $ sam local execution history execution-id

Cenários de teste comuns

Testando o comportamento do checkpoint

Para testar se sua função corretamente, os pontos de verificação indicam:

# Example Python durable function def handler(event, context): # This will create a checkpoint context.wait(10) # Wait 10 seconds # Function resumes here after wait return {"message": "Function resumed after wait"}

Quando você invoca essa função localmente, o período de espera é processado automaticamente.

Testando cenários de retorno de chamada

Para funções que aguardam retornos de chamada externos:

  1. Inicie sua função durável que aguarda um retorno de chamada

  2. Em outro terminal, resolva o retorno de chamada:

    $ sam local callback succeed callback-id
  3. Observe a execução do currículo da função

Solução de problemas

Função durável que não está sendo executada corretamente

Problema: a função não se comporta como uma função durável.

Soluções:

  • Verifique se DurableConfig está definido no seu modelo de SAM

  • Certifique-se de que seu código de função use métodos SDK de função duráveis (por exemplo,context.wait())

  • Verifique se você está usando um tempo de execução compatível (TypeScript, JavaScript, Python)

Não é possível recuperar o histórico de execução

Problema: O local execution history comando não retorna resultados.

Soluções:

  • Verifique se o ID de execução está correto

  • Verifique se a função foi invocada pelo menos uma vez

Os comandos de retorno de chamada não funcionam

Problema: os comandos de retorno de chamada não resolvem operações pendentes.

Soluções:

  • Verifique se o ID de retorno de chamada está correto

  • Verifique se a função está realmente aguardando um retorno de chamada

  • Verifique se você está usando a sintaxe correta do comando de retorno de chamada

Dicas de depuração

  • Use o histórico de execução - revise o histórico de execução para entender o fluxo de sua função durável

  • Teste incrementalmente - comece com operações de espera simples antes de adicionar lógica complexa

  • Use registro detalhado - Habilite o registro detalhado para rastrear o fluxo de execução

Saiba mais

Para obter mais informações sobre testes e depuração, consulte: