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
-
Crie seu aplicativo:
$sam build -
Invoque sua função durável:
$sam local invoke MyDurableFunction --durable-execution-name test -
Verifique o histórico de execução, se necessário:
$sam local execution historyexecution-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:
-
Inicie sua função durável que aguarda um retorno de chamada
-
Em outro terminal, resolva o retorno de chamada:
$sam local callback succeedcallback-id -
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
DurableConfigestá 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:
-
Introdução aos testes com sam local invoke- Documentação de invocação local
-
sam local execution history- Histórico de execução