Aumentar la resiliencia de las guías con reintentos automáticos
En este documento se explica por qué a veces fallan las acciones automatizadas de los cuadernos de estrategias debido a problemas temporales, como interrupciones de la red o límites de frecuencia de las APIs. Para que tus guías de procedimientos sean más resilientes, puedes configurar acciones concretas para que se vuelvan a intentar automáticamente si se producen errores de este tipo.
Los reintentos de acciones ayudan a tus cuadernos de estrategias a recuperarse de fallos temporales, como problemas de red, límites de frecuencia de la API o falta de disponibilidad del servicio. Estos reintentos se aplican a las acciones estándar de las guías, como el enriquecimiento, la contención o las notificaciones.
El mecanismo de reintento se activa por el estado de ejecución interno de la acción, no por los códigos de error HTTP estándar. No se intentan reintentos en las acciones que agotan el tiempo de espera o en las acciones que se usan para controlar el flujo (como las condiciones o los bloques de Playbook), ya que no están diseñadas para fallar de la misma forma.
Condiciones del mecanismo de reintento de acciones
El mecanismo de reintento se activa solo cuando una acción falla en condiciones específicas que suelen indicar un fallo transitorio, de infraestructura o no controlado. No se activa en caso de errores relacionados con tiempos de espera o acciones de control de flujo.
Condiciones que activan un reintento
El mecanismo de reintento se activa solo cuando la acción falla en las siguientes circunstancias:
- Errores de secuencia de comandos no controlados: cualquier error o excepción que se produzca en la secuencia de comandos de Python de la acción y que no hayas controlado explícitamente en tu secuencia de comandos.
- Estado de error explícito: la secuencia de comandos de la acción devuelve explícitamente el estado de ejecución
EXECUTION_STATE_FAILEDal servidor. - Fallos de infraestructura: fallos derivados de la infraestructura subyacente, como problemas de conexión (por ejemplo, errores de conexión de Python) que impiden que se obtenga un resultado correcto.
Condiciones que impiden que se vuelva a intentar (no se intenta de nuevo)
Los reintentos se omiten en los casos de fallo relacionados con los tiempos de espera o las acciones de control de flujo:
- Tiempo de espera de ejecución de la guía: la acción no se completa y no devuelve ningún resultado en el tiempo de espera general configurado para el paso de la guía específico.
- Estado de tiempo de espera gestionado: la secuencia de comandos de acción informa explícitamente de un tiempo de espera de acción interno devolviendo el estado
EXECUTION_STATE_TIMEOUT. El servidor trata este error como un "Tiempo de espera gestionado", lo que permite que la guía se siga ejecutando sin volver a intentarlo.
Configurar reintentos de acciones
Para configurar los reintentos de una acción, sigue estos pasos:
- Haz doble clic en la acción correspondiente del diseñador de manuales.
- En la barra lateral, haga clic en la pestaña Configuración y, a continuación, active el interruptor Reintentar si falla.
- Especifique los siguientes parámetros:
- Número de reintentos: introduce cuántas veces debe intentar volver a ejecutarse la acción si falla.
- Retraso entre reintentos: define el retraso en segundos, minutos u horas entre cada intento.
- En la sección Si falla el paso, selecciona una de las siguientes opciones
si la acción falla después de todos los intentos:
- Detener guía: se detiene la ejecución de la guía.
- Saltar paso: el manual continúa con el siguiente paso.
- Haz clic en Guardar.
Cómo aparecen los reintentos durante la ejecución de la guía
Cuando se ejecuta un paso de un cuaderno de estrategias con reintentos, verás estados y mensajes específicos que indican el progreso de los reintentos:
- Si una acción falla y se han configurado reintentos, su estado en la pestaña Guías cambiará temporalmente a A la espera del siguiente reintento antes del siguiente intento.
- Si la acción se completa correctamente después de uno o varios reintentos, su estado final en la pestaña Playbooks será "Correcto", junto con el número de reintentos (por ejemplo, Completado después de dos reintentos).
- Si la acción falla después de todos los reintentos, su estado final indicará que ha fallado, junto con el número de reintentos (por ejemplo, Fallo tras 3 reintentos).
- También se muestra información relevante sobre los intentos de reintento en el Panel de casos.
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.