通过自动重试提高 playbook 的弹性
支持的平台:
Google SecOps
SOAR
本文档介绍了 playbook 中的自动化操作有时会因网络中断或 API 速率限制等临时问题而失败。为确保剧本更具弹性,您可以将各个操作配置为在遇到此类故障时自动重试。
操作重试有助于您的 playbook 从临时性故障(例如网络问题、API 速率限制或服务不可用)中恢复。这些重试适用于标准 playbook 操作,例如丰富化、遏制或通知。
重试机制由操作的内部执行状态触发,而不是由标准 HTTP 错误代码触发。对于遇到超时问题的操作或用于控制流程的操作(例如条件或 playbook 块),系统不会尝试重试,因为这些操作并非以相同的方式设计为会失败。
操作重试机制条件
仅当操作在特定条件下失败时(通常表示存在暂时性、基础架构或未处理的故障),才会触发重试机制。不会针对与超时或流量控制操作相关的故障激活。
触发重试的条件
仅当操作在以下情况下失败时,重试机制才会启动:
- 未处理的脚本错误:在操作的 Python 脚本中发生,但您未在脚本中明确处理的任何错误或异常。
- 显式失败状态:操作脚本明确向服务器返回执行状态
EXECUTION_STATE_FAILED。 - 基础架构故障:源自底层基础架构的故障,例如导致无法成功完成任务的连接问题(例如,Python 连接错误)。
绕过重试的条件(不尝试重试)
在与超时或流量控制操作相关的失败场景中,系统会绕过重试:
- playbook 执行超时:操作无法在为特定 playbook 步骤配置的常规超时时限内完成并返回结果。
- 已处理的超时状态:操作脚本通过返回状态
EXECUTION_STATE_TIMEOUT明确报告内部操作超时。服务器会将此视为“已处理的超时”,从而允许 playbook 继续执行,而无需重试。
配置操作重试
如需为操作配置重试,请按以下步骤操作:
- 在剧本设计器中双击相关操作。
- 在边栏中,点击设置标签页,然后点击失败时重试切换开关,将其切换到开启位置。
- 指定以下参数:
- 重试次数:输入操作失败时应尝试重新运行的次数。
- 重试之间的延迟时间:定义每次重试尝试之间的延迟时间(以秒、分钟或小时为单位)。
- 在如果步骤失败部分,如果操作在所有重试尝试后最终失败,请选择以下选项之一:
- 停止 playbook:停止执行 playbook。
- 跳过步骤:playbook 继续执行下一步。
- 点击保存。
在 playbook 执行期间,重试如何显示
当具有重试功能的 playbook 步骤运行时,您会看到特定的状态和消息,指示重试尝试的进度:
- 如果某个操作在配置了重试的情况下失败,那么在下一次尝试之前,Playbook 标签页中该操作的状态会暂时变为正在等待下一次重试。
- 如果操作在一次或多次重试后成功,则其在 Playbook 标签页中的最终状态会显示为成功,并附带重试次数(例如,Completed after two retries)。
- 如果操作在所有重试尝试后仍失败,其最终状态会指示失败,并显示重试次数(例如,重试 3 次后失败)。
- 有关重试的相关信息也会显示在案例墙上。
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。