Tester et déboguer des fonctions durables - AWS Serverless Application Model

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
  1. Créez votre application :

    $ sam build
  2. Invoquez votre fonction durable :

    $ sam local invoke MyDurableFunction --durable-execution-name test
  3. Vérifiez l'historique des exécutions si nécessaire :

    $ sam local execution history execution-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 :

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

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

    $ sam local callback succeed callback-id
  3. 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 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

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 :