他のステップで取得した情報の活用方法
下図のように、アクションの webhook で取得した情報を後続のステップにて使用する場合の設定方法について説明します。
アクションステップより、事前に設定した情報取得用の webhook を選択します。
この時、レスポンスを利用するために「アクションの実行完了を待つ」にチェックを入れたままにします。
このアクションは、レスポンスボディとして下記のような JSON 文字列が返ってくる想定です。
{
"ID":"ID-example",
"host":"XXX.X.XXX.X",
"status":"error",
"trigger":"cpu"
}
アクションのレスポンスは下記のように取得されます。
{
"steps": {
"アクションステップのID": {
"output": {
"statusCode": 200,
"headers": {
"Cache-Control": "no-cache, no-store, no-transform, must-revalidate, private, max-age=0",
"Content-Length": "29",
"Content-Type": "application/json; charset=utf-8",
"Date": "Sun, 24 Apr 2022 02:50:19 GMT"
},
"isBodyEncoded": false,
"body": "{ \"ID\": \"ID-example\", \"host\": \"XXX.X.XXX.X\", \"status\": \"error\", \"trigger\": \"cpu\"}"
}
}
}
}
上記の通りレスポンスボディは文字列の状態のため、次のオペレータステップにおいてレスポンスボディを JSON としてパースし、個々の値を扱えるように情報を加工します。
レスポンスの情報はステップの実行履歴の出力値(「実行履歴 > 該当日時 > 情報を取得したステップの表示名」)から確認ができます。
オペレーターステップより、「フィールドを JSON としてパースする」を選択します。
この時、指定したいステップの情報をフィールド値に入力します。
今回は、アクションステップのレスポンスボディを JSON パースするため、steps.[アクションステップのステップID].output.body
を指定します1。
ステップ ID は、作成したアクションステップを右クリックし、表示されたメニューより「ID をコピー」をクリックして取得します。
JSON パースした後の値について、任意のフィールドを指定して保存します。
指定したフィールドの内容を指定して、内容に基づいて行いたい処理を設定します(数値比較や文字列比較等)。
この時点で、最初に文字列として取得されたリクエストボディの
"body": "{ \"ID\": \"ID-example\", \"host\": \"XXX.X.XXX.X\", \"status\": \"error\", \"trigger\": \"cpu\"}"
を指定して JSON パースし、個々の値として扱える状態になった上で任意のフィールド webhook
に保存されます。
実際にランブック上では下記の通り値が保存されています。
{
"webhook": {
"ID":"ID-example",
"host":"XXX.X.XXX.X",
"status":"error",
"trigger":"cpu"
}
}
保存された内容は、ステップの実行履歴の出力値(「実行履歴 > 該当日時 > JSON パースしたステップの表示名」)から確認ができます。
最後に、ブランチステップにて指定したフィールドの内容を指定して、内容に基づいて行いたい処理を設定します(数値比較や文字列比較等)。
以上のような流れで、webhook 等で取得した情報を後続のステップにて使用できます。
フィールドの指定方法についての詳細は、 Kompira AlertHub 基本マニュアル > 設定の流れ > フィールドの指定方法 を参照してください。