Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Webhook を設定する

最終更新 Markdown で表示Agent セットアップ

Webhook を使い、さまざまなサービスを Cloudflare に接続して、Cloudflare アカウントからの通知を受け取れます。Cloudflare アカウントを よく使う Webhook サービス に接続する方法は、次の表を参照してください。

Webhook を設定する

  1. Cloudflare ダッシュボードで Notifications ページを開きます。

    Notifications を開く ↗
  2. Destinations を開きます。

  3. Webhooks カードで Create を選択します。

  4. あとで識別できるように、Webhook に名前を付けます。

  5. URL フィールドに、すでにセットアップ済みで Cloudflare アカウントに接続したいサードパーティサービスの URL を入力します。

  6. 必要なら Secret を入力します。Secret は Webhook の暗号化方法であり、Cloudflare に接続するサービスによって異なります。

  7. Save and Test を選択して、Webhook のセットアップを完了します。

新しい Webhook は Webhooks カードに表示されます。

Webhook を編集する

Webhook で編集できるのは名前だけです。削除もできます。

  1. Cloudflare ダッシュボードで Notifications ページを開きます。

    Notifications を開く ↗
  2. Destinations を開きます。

  3. Webhooks カードで、編集したい Webhook の Edit を選択します。

  4. Webhook の名前を更新し、Save を選択します。

Webhook は Edit のあとで削除できます。Destinations カードに表示される Webhook 一覧の Delete からも削除できます。

ファイアウォール設定

Webhook 通知は Cloudflare の IP 範囲 から送られます。Webhook エンドポイントがファイアウォールで保護されている場合は、通知を受け取るためにこれらの IP アドレスを許可リストに追加してください。

Cloudflare の IP アドレスの最新一覧をプログラムで取得するには、Cloudflare API を使います。

汎用 Webhook

Cloudflare が現在用意している Webhook でカバーされないサービスを使う場合は、独自に設定 し、有効な Webhook URL を入力できます。

汎用 Webhook では、常に Secret を使うことをおすすめします。Cloudflare は、送信するすべてのリクエストの cf-webhook-auth ヘッダーに Secret を入れます。このヘッダーがない場合、または指定した値と一致しない場合は、Webhook を拒否してください。

Save and Test を選択すると、ポリシーに紐づけられる送信先として Webhook が設定されます。

Cloudflare が送る Webhook のスキーマは次のとおりです。

スキーマの例json
{
	"text": "Hello World! This is a test message sent from https://cloudflare.com. If you can see this, your webhook is configured properly."
}

アラート種別ごとのペイロード構造と例は、Webhook ペイロードスキーマのリファレンス を参照してください。

汎用 Webhook の制限

Cloudflare の汎用 Webhook 通知は、公開解決できる IP アドレスのポート 80 または 443 にだけ送られます。

プライベート IP アドレスや別のポートで汎用 Webhook 通知を受け取りたい場合は、Workers で受け取って転送するか、Cloudflare Tunnel を設定して接続済みアプリケーションへルーティングできます。

汎用 Webhook を Workers と使う

汎用 Webhook と Cloudflare Workers を組み合わせると、Webhook を受け付ける任意のサービスへ通知を届けられます。

Workers と汎用 Webhook の使い方を理解するための サンプルツール があります。この例は、汎用 Webhook のレスポンスを変換して Rocket.Chat へ届けるものです。コードには詳しいコメントがあり、自分の用途に合わせて例を改変する手順を案内します。

よく使う Webhook サービス

Google Chat

Google Chat の場合:

  • Secret: Secret は URL の一部です。Cloudflare がこの情報を自動で解析するため、ユーザーの入力は不要です。
  • URL: URL は Google Chat チャネルのアドレスによって異なります。

Slack

Slack の場合:

  • Secret: Secret は URL の一部です。Cloudflare がこの情報を自動で解析するため、ユーザーの入力は不要です。
  • URL: URL は Slack チャネルのアドレスによって異なります。

DataDog

DataDog の場合:

  • Secret: Secret は必須で、ユーザーが入力する必要があります。DataDog ではこれを API Key と呼びます
  • URL: https://api.datadoghq.com/api/v1/events

Discord

Discord の場合:

  • Secret: Secret は URL の一部です。Cloudflare がこの情報を自動で解析するため、ユーザーの入力は不要です。
  • URL: URL は Discord チャネルのアドレスによって異なります。

OpsGenie

OpsGenie の場合:

  • Secret: Secret は OpsGenie の REST API 用 API Key です。
  • URL: https://api.opsgenie.com/v2/alerts

Splunk

Splunk の場合:

  • Secret: Secret は必須で、ユーザーが入力する必要があります。Splunk ではこれを token と呼びます。詳細は Splunk のドキュメント を参照してください。
  • URL:
    1. 対応している Splunk エンドポイントは次の 3 つだけです。services/collector、services/collector/raw、services/collector/event。
    2. トークンで SSL が有効な場合、ポートは 443 である必要があります。トークンで SSL が無効な場合、ポートは 8088 である必要があります。
    3. サーバー側で SSL を有効にする必要があります。
    4. Splunk HTTP Event Collector の Enable indexer acknowledgement は無効にする必要があります。

Feishu

Feishu の場合:

  • Secret: Secret は URL の一部です。Cloudflare がこの情報を自動で解析するため、ユーザーの入力は不要です。
  • URL: URL は Custom Robot によって異なります。

Teams

Teams の場合:

  • Secret: Secret は URL の一部です。Cloudflare がこの情報を自動で解析するため、ユーザーの入力は不要です。
  • URL: Incoming Webhook コネクタを作成したときに Teams が提供する URL です。

ServiceNow

ServiceNow の場合:

  • Secret: ユーザーが決めます。Cloudflare Notifications に入力した Secret が ServiceNow と一致するようにしてください。詳細は ServiceNow のドキュメント を参照してください。
  • URL: https://{servicenow_instance}.com/{base_api_path}

汎用 Webhook

汎用 Webhook の場合:

  • Secret: ユーザーが決めます。
  • URL: ユーザーが決めます。

Secret の設定

Google Chat、Slack、Discord、Feishu の Webhook を作成するとき、Secret は URL の一部です。URL から Secret を取り除き、Cloudflare に自動抽出させる代わりに secret の値を明示的に設定することもできます。

Terraform で Webhook インフラをコードとして定義する場合に便利です。Cloudflare が URL を書き換えません。

Terraform の例tf
resource "cloudflare_notification_policy_webhooks" "example" {
  account_id = "<ACCOUNT_ID>"
  name       = "Slack Webhook"
  url        = "https://hooks.slack.com/services/T00000000/B00000000"
  secret     = "<secret>"
}

役に立ちましたか?