自動再試行でハンドブックの復元力を高める

以下でサポートされています。

このドキュメントでは、プレイブックの自動処理が、ネットワークの停止や API のレート制限などの一時的な問題により失敗することがあることについて説明します。プレイブックの復元性を高めるには、このような障害が発生した場合に自動的に再試行するように個々のアクションを構成します。

アクションの再試行は、ネットワークの問題、API のレート制限、サービスの利用不可など、一時的な障害からプレイブックを復元するのに役立ちます。これらの再試行は、拡充、封じ込め、通知などの標準のハンドブック アクションに適用されます。

再試行メカニズムは、標準の HTTP エラーコードではなく、アクションの内部実行ステータスによってトリガーされます。タイムアウトが発生したアクションや、フロー制御に使用されるアクション(条件やプレイブック ブロックなど)は、同じように失敗するように設計されていないため、再試行は行われません。

アクションの再試行メカニズムの条件

再試行メカニズムは、通常、一時的な障害、インフラストラクチャの障害、未処理の障害を示す特定の条件下でアクションが失敗した場合にのみトリガーされます。タイムアウトまたはフロー制御アクションに関連する障害では有効になりません。

再試行を有効にする条件

再試行メカニズムは、次の状況でアクションが失敗した場合にのみ有効になります。

  • 未処理のスクリプト エラー: アクションの Python スクリプト内で発生したエラーまたは例外のうち、スクリプトで明示的に処理していないもの。
  • 明示的な失敗ステータス: アクション スクリプトが実行状態 EXECUTION_STATE_FAILED をサーバーに明示的に返します。
  • インフラストラクチャの障害: 接続の問題(Python 接続エラーなど)など、基盤となるインフラストラクチャに起因する障害。

再試行をバイパスする条件(再試行が試行されない)

タイムアウトまたはフロー制御アクションに関連する障害シナリオでは、再試行はバイパスされます。

  • ハンドブックの実行タイムアウト: 特定のハンドブック ステップに構成された一般的なタイムアウト制限内で、アクションが完了して結果を返すことができません。
  • 処理済みタイムアウト ステータス: アクション スクリプトがステータス EXECUTION_STATE_TIMEOUT を返すことで、内部アクションのタイムアウトを明示的に報告します。サーバーはこれを「処理済みのタイムアウト」として扱い、再試行なしでハンドブックの実行を続行します。

アクションの再試行を構成する

アクションの再試行を構成する手順は次のとおりです。

  1. プレイブック デザイナーで関連するアクションをダブルクリックします。
  2. サイドバーで [設定] タブをクリックし、[失敗時に再試行] 切り替えボタンをオンにします。
  3. 次のパラメータを指定します。
    • 再試行回数: アクションが失敗した場合に再実行を試行する回数を入力します。
    • 再試行間の遅延: 各再試行の間隔を秒、分、時間で定義します。
  4. [ステップが失敗した場合] セクションで、すべての再試行が失敗した後に最終的にアクションが失敗した場合に、次のいずれかのオプションを選択します。
    • Stop playbook: Playbook の実行が停止します。
    • ステップをスキップ: プレイブックは次のステップに進みます。
  5. [保存] をクリックします。

プレイブックの実行中に再試行がどのように表示されるか

再試行を含むハンドブック ステップが実行されると、再試行の進行状況を示す特定のステータスとメッセージが表示されます。

  • 再試行が構成されているアクションが失敗すると、次の試行の前に、[ハンドブック] タブのステータスが一時的に [次回の再試行を待機中] に変わります。
  • 1 回以上の再試行後にアクションが成功した場合、[プレイブック] タブの最終ステータスは成功を示し、再試行回数も表示されます(例: [2 回の再試行後に完了])。
  • すべての再試行が失敗した場合、アクションの最終ステータスは失敗を示し、再試行回数も示します(例: 3 回の再試行後に失敗)。
  • 再試行に関する関連情報は、[ケースウォール] にも表示されます。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。