透過自動重試功能提升應對手冊的韌性

支援的國家/地區:

本文說明由於網路中斷或 API 速率限制等暫時性問題,劇本中的自動動作有時會失敗。如要確保應對手冊更具彈性,您可以設定個別動作,在遇到這類失敗時自動重試。

動作重試功能可協助劇本從暫時性錯誤中復原,例如網路問題、API 速率限制或服務無法使用。這些重試適用於標準應對手冊動作,例如擴充、遏止或通知。

重試機制是由動作的內部執行狀態觸發,而非標準 HTTP 錯誤碼。如果動作發生逾時或用於流程控制 (例如條件或劇本區塊),系統不會嘗試重試,因為這些動作的設計方式不同,不會以相同方式失敗。

動作重試機制條件

只有在特定條件下動作失敗時,才會觸發重試機制,這通常表示發生暫時性、基礎架構或未處理的失敗。如果失敗與逾時或流程控制動作有關,則不會啟用。

觸發重試的條件

只有在下列情況下,動作失敗時才會啟動重試機制:

  • 未處理的指令碼錯誤:動作的 Python 指令碼中發生的任何錯誤或例外狀況,您未在指令碼中明確處理。
  • 明確失敗狀態:動作指令碼會明確將執行狀態 EXECUTION_STATE_FAILED 傳回伺服器。
  • 基礎架構故障:源自基礎架構的故障,例如連線問題 (例如 Python 連線錯誤),導致作業無法順利完成。

規避重試的條件 (不會嘗試重試)

在與逾時或流量控制動作相關的失敗情境中,系統會略過重試:

  • 應對手冊執行逾時:動作未在特定應對手冊步驟設定的一般逾時限制內完成並傳回結果。
  • 處理逾時狀態:動作指令碼會傳回 EXECUTION_STATE_TIMEOUT 狀態,明確回報內部動作逾時。伺服器會將此視為「已處理的逾時」,讓應對手冊執行作業繼續進行,不必重試。

設定動作重試

如要設定動作的重試次數,請按照下列步驟操作:

  1. 在劇本設計工具中,按兩下相關動作。
  2. 在側欄中,按一下「設定」分頁標籤,然後點選「失敗時重試」切換鈕,將其設為開啟。
  3. 指定下列參數:
    • 重試次數:輸入動作失敗時的重試次數。
    • 每次重試之間的延遲時間:定義每次重試嘗試之間的延遲時間 (以秒、分鐘或小時為單位)。
  4. 在「如果步驟失敗」部分,如果動作在所有重試嘗試後最終失敗,請選取下列任一選項:
    • 停止應對手冊:停止執行應對手冊。
    • 略過步驟:劇本會繼續執行下一個步驟。
  5. 按一下 [儲存]

應對手冊執行期間的重試次數

當有重試的劇本步驟執行時,您會看到特定狀態和訊息,指出重試嘗試的進度:

  • 如果動作失敗,且已設定重試次數,則在下次嘗試前,應對手冊分頁中的動作狀態會暫時變更為「正在等待下次重試」
  • 如果動作在重試一或多次後成功,Playbook 分頁中的最終狀態會顯示成功,以及重試次數 (例如「在重試兩次後完成」)。
  • 如果所有重試嘗試都失敗,最終狀態會顯示失敗,以及重試次數 (例如「重試 3 次後仍失敗」)。
  • 案件總覽也會顯示重試嘗試的相關資訊。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。