配置自动重试

支持的产品:

playbook 中的自动化操作有时会因网络中断或 API 速率限制等暂时性问题而失败。为确保 playbook 具有更高的弹性,您可以将各个操作配置为在遇到此类故障时自动重试。

操作重试有助于 playbook 从暂时性故障(例如 网络问题、API 速率限制或服务不可用)中恢复。这些重试适用于标准 playbook 操作,例如扩充、隔离或通知。

重试机制由操作的内部执行状态触发,而不是由标准 HTTP 错误代码触发。对于遇到超时的操作或用于流控制的操作(例如条件或 playbook 块),系统不会尝试重试,因为这些操作并非以相同的方式设计为失败。

操作重试机制条件

仅当操作在特定条件下失败时,重试机制才会触发,这些条件通常表示暂时性故障、基础架构故障或未处理的故障。对于与超时或流控制操作相关的故障,系统不会激活重试机制。

激活重试的条件

仅当操作在以下情况下失败时,重试机制才会激活:

  • 未处理的脚本错误: 操作的 Python 脚本中发生的任何错误或异常,您未在脚本中明确处理。
  • 明确的失败状态: 操作脚本明确向服务器返回 执行状态 EXECUTION_STATE_FAILED
  • 基础架构故障: 源于底层 基础架构的故障,例如阻止成功结果的连接问题(例如 Python 连接 错误)。

绕过重试的条件(不尝试重试)

在与超时或流控制操作相关的失败场景中,系统会绕过重试:

  • playbook 执行超时: 操作未能在为特定 playbook 步骤配置的一般超时限制内完成并返回结果。
  • 已处理的超时状态: 操作脚本通过返回状态 EXECUTION_STATE_TIMEOUT 明确报告内部操作超时。服务器将其视为 “已处理的超时”,这让 playbook 执行可以继续,而无需重试。

配置操作重试

如需为操作配置重试,请按以下步骤操作:

  1. 在 playbook 设计器中,双击相关操作。
  2. 在边栏中,点击设置 标签页,然后点击 失败时重试 开关,将其切换到开启位置。
  3. 指定以下参数:
    • 重试次数: 输入操作失败时应尝试重新运行的次数。
    • 重试之间的延迟时间: 定义每次重试尝试之间的延迟时间(以秒、分钟或 小时为单位)。
  4. 如果步骤失败 部分,如果操作在所有重试尝试后最终失败,请选择以下选项之一:
    • 停止运行 playbook:playbook 执行停止。
    • 跳过步骤:playbook 继续执行下一步。
  5. 点击保存

playbook 执行期间重试的显示方式

当运行配置了重试的 playbook 步骤时,您会看到特定状态和消息,指明重试尝试的进度:

  • 如果操作失败且配置了重试,则在下一次尝试之前,其在 Playbook 标签页中的状态会暂时更改为等待下一次重试
  • 如果操作在一次或多次重试后成功,则其在 Playbook 标签页中的最终状态会指明成功,并显示重试次数(例如 重试两次后完成 )。
  • 如果操作在所有重试尝试后失败,则其最终状态会指明 失败,并显示重试次数(例如重试 3 次后失败)。
  • 与重试尝试相关的相关信息也会显示在案例 墙上。

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。