

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
<a name="test-and-debug-durable-functions"></a>

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
<a name="test-and-debug-durable-functions-workflow"></a>

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
   ```

1. Invoque sua função durável:

   ```
   $ sam local invoke MyDurableFunction --durable-execution-name test 
   ```

1. Verifique o histórico de execução, se necessário:

   ```
   $ sam local execution history execution-id
   ```

## Cenários de teste comuns
<a name="test-and-debug-durable-functions-scenarios"></a>

### Testando o comportamento do checkpoint
<a name="test-and-debug-durable-functions-scenarios-checkpoints"></a>

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
<a name="test-and-debug-durable-functions-scenarios-callbacks"></a>

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

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

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

   ```
   $ sam local callback succeed callback-id
   ```

1. Observe a execução do currículo da função

## Solução de problemas
<a name="test-and-debug-durable-functions-troubleshooting"></a>

### Função durável que não está sendo executada corretamente
<a name="test-and-debug-durable-functions-troubleshooting-config"></a>

**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
<a name="test-and-debug-durable-functions-troubleshooting-history"></a>

**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
<a name="test-and-debug-durable-functions-troubleshooting-callbacks"></a>

**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
<a name="test-and-debug-durable-functions-debugging"></a>
+ **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
<a name="test-and-debug-durable-functions-learn"></a>

Para obter mais informações sobre testes e depuração, consulte:
+ [Introdução aos testes com sam local invoke](using-sam-cli-local-invoke.md)- Documentação de invocação local
+ [sam local execution history](sam-cli-command-reference-sam-local-execution-history.md)- Histórico de execução