Webhook後処理

概要

Cloud Automatorで「ジョブの実行」または「ポリシーセットの評価」が完了した際に、その結果を任意のURLにてPOSTリクエストで受け取ることができます。送信される結果はJSON文字列となります。また、その際に Authorization ヘッダの値を通じて認証を行うこともできます。

設定項目

設定項目 説明 制約
後処理名 後処理につける名前を入力します。  
グループ どのグループに後処理を作成するかを選択します。グループ共通はEメール後処理のみサポートしています。  
サービス 後処理で通知する手段の選択です、Webhookを選択します。  
Webhook URL
(必須入力)
http:// または https:// で始まる任意のURLを入力できます。 2,048文字まで
Authorizationヘッダ
(任意)
  • 任意の文字列を入力できます。
  • 値が入力された場合は、Webhook URL宛に送信されるPOSTリクエストに  Authorization: 入力された値  のようなヘッダが設定されます。
  • 値が入力されていない場合は、Webhook URL宛に送信されるPOSTリクエストに Authorization ヘッダは設定されません。
1,024文字まで

 

設定方法

  1. サイドメニューの後処理設定から「後処理の追加」メニューを開きます。
    webhook01.png
  2. 基本情報、Webhook通知設定に以下の項目を入力し、追加をクリックします
    webhook02.png

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",
  }
]

関連情報

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください