Améliorer la résilience des playbooks grâce aux nouvelles tentatives automatiques

Compatible avec :

Ce document explique pourquoi les actions automatisées des playbooks peuvent parfois échouer en raison de problèmes temporaires tels que des pannes de réseau ou des limites de débit d'API. Pour vous assurer que vos playbooks sont plus résilients, vous pouvez configurer des actions individuelles pour qu'elles soient relancées automatiquement en cas d'échec.

Les nouvelles tentatives d'action aident vos playbooks à se remettre d'échecs temporaires tels que des problèmes de réseau, des limites de fréquence de l'API ou l'indisponibilité du service. Ces nouvelles tentatives s'appliquent aux actions de playbook standards, telles que l'enrichissement, l'endiguement ou les notifications.

Le mécanisme de nouvelle tentative est déclenché par l'état d'exécution interne de l'action, et non par les codes d'erreur HTTP standards. Aucune nouvelle tentative n'est effectuée pour les actions qui rencontrent des délais d'attente ou les actions utilisées pour le contrôle du flux (comme les conditions ou les blocs de playbook), car elles ne sont pas conçues pour échouer de la même manière.

Conditions du mécanisme de nouvelle tentative d'action

Le mécanisme de réessai n'est déclenché que lorsqu'une action échoue dans des conditions spécifiques qui indiquent généralement un échec transitoire, d'infrastructure ou non géré. Il n'est pas activé en cas d'échec lié à des actions de contrôle du flux ou à des délais d'attente.

Conditions qui activent une nouvelle tentative

Le mécanisme de nouvelle tentative n'est activé que lorsque l'action échoue dans les circonstances suivantes :

  • Erreurs de script non gérées : toute erreur ou exception qui se produit dans le script Python de l'action et que vous ne gérez pas explicitement dans votre script.
  • État d'échec explicite : le script d'action renvoie explicitement l'état d'exécution EXECUTION_STATE_FAILED au serveur.
  • Défaillances d'infrastructure : échecs qui proviennent de l'infrastructure sous-jacente, tels que des problèmes de connexion (par exemple, des erreurs de connexion Python) qui empêchent un résultat positif.

Conditions qui empêchent une nouvelle tentative (aucune tentative de nouvelle tentative)

Les réessais sont ignorés en cas d'échec lié à des délais d'attente ou à des actions de contrôle du flux :

  • Délai d'exécution du playbook dépassé : l'action n'a pas pu être effectuée et n'a pas renvoyé de résultat dans le délai général configuré pour l'étape spécifique du playbook.
  • État de délai d'attente géré : le script d'action signale explicitement un délai d'attente d'action interne en renvoyant l'état EXECUTION_STATE_TIMEOUT. Le serveur considère cela comme un "délai d'expiration géré", ce qui permet à l'exécution du playbook de se poursuivre sans nouvelle tentative.

Configurer les nouvelles tentatives d'action

Pour configurer les tentatives pour une action, procédez comme suit :

  1. Double-cliquez sur l'action concernée dans le concepteur de playbook.
  2. Dans la barre latérale, cliquez sur l'onglet Paramètres, puis activez l'option Réessayer en cas d'échec.
  3. Spécifiez les paramètres suivants :
    • Nombre de nouvelles tentatives : saisissez le nombre de fois où l'action doit tenter de s'exécuter à nouveau en cas d'échec.
    • Délai entre les tentatives : définissez le délai en secondes, minutes ou heures entre chaque tentative.
  4. Dans la section Si l'étape échoue, sélectionnez l'une des options suivantes si l'action échoue finalement après toutes les tentatives :
    • Arrêter le playbook : l'exécution du playbook s'arrête.
    • Ignorer l'étape : le playbook passe à l'étape suivante.
  5. Cliquez sur Enregistrer.

Comment les nouvelles tentatives s'affichent-elles lors de l'exécution d'un playbook ?

Lorsqu'une étape de playbook avec des tentatives s'exécute, des états et des messages spécifiques s'affichent pour indiquer la progression des tentatives :

  • Si une action échoue alors que des tentatives sont configurées, son état dans l'onglet Playbooks passe temporairement à En attente de la prochaine tentative avant la prochaine tentative.
  • Si l'action aboutit après une ou plusieurs tentatives, son état final dans l'onglet Playbooks indique la réussite, ainsi que le nombre de tentatives (par exemple, Terminée après deux tentatives).
  • Si l'action échoue après toutes les tentatives, son état final indique l'échec, ainsi que le nombre de tentatives (par exemple, Échec après 3 tentatives).
  • Des informations pertinentes sur les tentatives de réessai s'affichent également sur le mur des demandes.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.