

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Tester et déboguer des fonctions durables
<a name="test-and-debug-durable-functions"></a>

Le test et le débogage de fonctions durables en local fonctionnent de la même manière que les fonctions Lambda classiques, avec une prise en charge automatique du point de contrôle et de la rediffusion. Ce guide couvre les scénarios de test courants et les techniques de dépannage.

## Flux de travail de test local
<a name="test-and-debug-durable-functions-workflow"></a>

Lorsque vous testez des fonctions durables localement, le flux de travail diffère des fonctions Lambda classiques :

**Flux de travail de test de fonctionnement durable**

1. Créez votre application :

   ```
   $ sam build
   ```

1. Invoquez votre fonction durable :

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

1. Vérifiez l'historique des exécutions si nécessaire :

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

## Scénarios de test courants
<a name="test-and-debug-durable-functions-scenarios"></a>

### Tester le comportement des points de contrôle
<a name="test-and-debug-durable-functions-scenarios-checkpoints"></a>

Pour vérifier que votre fonction fonctionne correctement, les points de contrôle indiquent :

```
# 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"}
```

Lorsque vous appelez cette fonction localement, le délai d'attente est géré automatiquement.

### Tester des scénarios de rappel
<a name="test-and-debug-durable-functions-scenarios-callbacks"></a>

Pour les fonctions qui attendent des rappels externes :

1. Démarrez votre fonction durable qui attend un rappel

1. Dans un autre terminal, résolvez le rappel :

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

1. Observez l'exécution de la fonction reprendre

## Résolution des problèmes
<a name="test-and-debug-durable-functions-troubleshooting"></a>

### La fonction durable ne s'exécute pas correctement
<a name="test-and-debug-durable-functions-troubleshooting-config"></a>

**Problème :** La fonction ne se comporte pas comme une fonction durable.

**Solutions :**
+ Vérifiez que cela `DurableConfig` est défini dans votre modèle SAM
+ Assurez-vous que votre code de fonction utilise des méthodes durables du SDK de fonctions (par exemple,`context.wait()`)
+ Vérifiez que vous utilisez un environnement d'exécution compatible (TypeScript, JavaScript, Python)

### Impossible de récupérer l'historique des exécutions
<a name="test-and-debug-durable-functions-troubleshooting-history"></a>

**Problème :** La `local execution history` commande ne renvoie aucun résultat.

**Solutions :**
+ Vérifiez que l'ID d'exécution est correct
+ Vérifiez que la fonction a été invoquée au moins une fois

### Les commandes de rappel ne fonctionnent pas
<a name="test-and-debug-durable-functions-troubleshooting-callbacks"></a>

**Problème :** les commandes de rappel ne résolvent pas les opérations en attente.

**Solutions :**
+ Vérifiez que l'identifiant de rappel est correct
+ Assurez-vous que la fonction attend réellement un rappel
+ Vérifiez que vous utilisez la bonne syntaxe de commande de rappel

## Conseils de débogage
<a name="test-and-debug-durable-functions-debugging"></a>
+ **Utiliser l'historique des exécutions** : passez en revue l'historique des exécutions pour comprendre le flux de votre fonction durable
+ **Testez de manière incrémentielle** : commencez par de simples opérations d'attente avant d'ajouter une logique complexe
+ **Utiliser la journalisation détaillée - Activez la journalisation** détaillée pour suivre le flux d'exécution

## En savoir plus
<a name="test-and-debug-durable-functions-learn"></a>

Pour plus d'informations sur les tests et le débogage, voir :
+ [Présentation des tests avec sam local invoke](using-sam-cli-local-invoke.md)- Documentation d'appel local
+ [sam local execution history](sam-cli-command-reference-sam-local-execution-history.md)- Historique d'exécution