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
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
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
-
Créez votre application :
$sam build -
Invoquez votre fonction durable :
$sam local invoke MyDurableFunction --durable-execution-name test -
Vérifiez l'historique des exécutions si nécessaire :
$sam local execution historyexecution-id
Scénarios de test courants
Tester le comportement des points de contrôle
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
Pour les fonctions qui attendent des rappels externes :
-
Démarrez votre fonction durable qui attend un rappel
-
Dans un autre terminal, résolvez le rappel :
$sam local callback succeedcallback-id -
Observez l'exécution de la fonction reprendre
Résolution de problème
La fonction durable ne s'exécute pas correctement
Problème : La fonction ne se comporte pas comme une fonction durable.
Solutions :
-
Vérifiez que cela
DurableConfigest 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
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
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
-
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
Pour plus d'informations sur les tests et le débogage, voir :
-
Présentation des tests avec sam local invoke- Documentation d'appel local
-
sam local execution history- Historique d'exécution