概要
Webhook後処理は「ジョブの実行」または「ポリシーセットの評価」が完了した際に、その結果を任意のURLにてPOSTリクエストで受け取るための機能です。
Webhook後処理で送信される結果はJSON文字列となります。また、その際に Authorization ヘッダの値を通じて認証を行うこともできます。
設定項目
設定項目 | 説明 | 制約 |
---|---|---|
後処理名 | 後処理につける名前を入力します。 | |
グループ | どのグループに後処理を作成するかを選択します。グループ共通はEメール後処理のみサポートしています。 | |
サービス | 後処理で通知する手段の選択です、Webhookを選択します。 | |
Webhook URL (必須入力) |
http:// または https:// で始まる任意のURLを入力できます。 | 2,048文字まで |
Authorizationヘッダ (任意) |
|
1,024文字まで |
設定方法
- サイドメニューの後処理設定から「後処理の追加」メニューを開きます。
- 基本情報、Webhook通知設定に以下の項目を入力し、追加をクリックします
POSTリクエストを受け取る側の注意点
Webhook URLとして入力したURLは以下のように動作する必要があります。
- Content-Type ヘッダの値が application/json なPOSTリクエストを受け付ける
- ステータスコードとして 200番台 を返す
- レスポンスボディは返す必要がない(レスポンスボディを返しても無視されます)
ステータスコードとして 200番台 以外が返された場合は、Cloud Automator側のジョブログやポリシーログにおいてWebhook後処理の実行に失敗したものとして記録されます。
リクエストがCloud Automatorからのものであることを確認する必要がある場合は、 User-Agent ヘッダ の値が Cloud Automator (Serverworks Co.,Ltd.) となっているかどうかで判別することができます。
ネットワークの問題などでCloud AutomatorからWebhook URLへのリクエストに失敗した場合には一定間隔毎に10回まで送信を試み、それでも失敗した場合はWebhook後処理の実行に失敗したものとしてジョブログやポリシーログに記録します。
POSTリクエストの内容
Webhook URLに送信されるPOSTリクエストのリクエストボディは以下のような内容となります。
ジョブの後処理として設定した場合
[
{
"type": "job",
"trigger_job_id": 10000,
"trigger_job_log_id": 20000,
"status": "completed",
"name": "Job Name",
"started_at": "2017-08-16T11:13:59Z",
"finished_at": "2017-08-16T11:14:15Z"
}
]
各プロパティの値は下記の通りです。
プロパティ | 型 | 値 |
---|---|---|
type | string | 常に job |
trigger_job_id | number | ジョブID |
trigger_job_log_id | number | ジョブログID |
status | string | completed, failed, aborted のいずれか |
name | string | ジョブの名前 |
started_at | string | ジョブの実行開始日時(ISO8601形式のUTC) |
finished_at | string | ジョブの実行完了日時(ISO8601形式のUTC) |
現時点ではJSONに含まれる実行結果は常に1件のみですが、将来的には複数の結果が含まれるように仕様が変更となる可能性があります。
ポリシーの後処理として設定した場合
[
{
"type": "policy",
"status": "completed",
"policy_set_name": "Policy Set Name",
"rule_name": "Policy Name",
"evaluations_time": "2017-08-16T11:13:59Z",
"evaluations": [
{
"ResourceId": "AWS Resource ID",
"ResourceName": "AWS Resource Name",
"ComplianceType": "COMPLIANT",
"ResultDetailCode": null
}
]
}
]
各プロパティの値は下記の通りです。
プロパティ | 型 | 値 |
---|---|---|
type | string | 常に policy |
status | string | completed, failed のいずれか |
policy_set_name | string | ポリシーセットの名前 |
rule_name | string | 評価したポリシーの名前 |
evaluations_time | string | ポリシーの評価日時(ISO8601形式のUTC) |
evaluations | array of object | 評価したAWSリソースの情報 |
現時点ではJSONに含まれる評価結果は常に1件のみですが、将来的には複数の結果が含まれるように仕様が変更となる可能性があります。
Webhook後処理のテスト方法
作成したWebhook後処理の詳細ページに表示されている「テストリクエストを送信」ボタンを押すと、Webhook URLにテストリクエストを送信してその成否を確認することができます。
テストとして送信されるリクエストの内容は以下のような「ジョブの後処理として設定した場合」のものとなります。
[
{
"type": "job",
"trigger_job_id": 1,
"trigger_job_log_id": 8,
"status": "completed",
"name": "Job for Test Request",
"started_at": "2017-10-01T09:00:00Z",
"finished_at": "2017-10-01T09:01:00Z",
}
]