コンテンツにスキップ

ウェブフックの設定

Cloudflareに接続して、Cloudflareアカウントから通知を受け取るために、さまざまなサービスにウェブフックを接続できます。以下の表を参照して、Cloudflareアカウントを人気のウェブフックサービスに接続する方法を学んでください。

ウェブフックの設定

  1. Cloudflareダッシュボードにログインし、アカウントを選択します。
  2. 通知 > 宛先に移動します。
  3. ウェブフックカードで、作成を選択します。
  4. 後で識別するためのウェブフックの名前を付けます。
  5. URLフィールドに、以前に設定したサードパーティサービスのURLを入力し、Cloudflareアカウントに接続します。
  6. 必要に応じて、Secretを挿入します。Secretsはウェブフックが暗号化される方法であり、Cloudflareに接続するサービスによって異なります。
  7. 保存してテストを選択して、ウェブフックの設定を完了します。

新しいウェブフックは、ウェブフックカードに表示されます。

ウェブフックの編集

ウェブフックの名前を編集することのみ可能で、削除することもできます。

  1. Cloudflareダッシュボードにログインし、アカウントを選択します。
  2. 通知 > 宛先に移動します。
  3. ウェブフックカードで、編集したいウェブフックの編集を選択します。
  4. ウェブフックの名前を更新し、保存を選択します。

編集を選択した後、または宛先カードに表示されているウェブフックのリストで削除を選択することで、ウェブフックを削除できます。

一般的なウェブフック

Cloudflareの現在利用可能なウェブフックに含まれていないサービスを使用している場合は、独自に設定し、有効なウェブフックURLを入力できます。

一般的なウェブフックには、常に秘密を使用することをお勧めします。Cloudflareは、行われたすべてのリクエストのcf-webhook-authヘッダーに秘密を送信します。このヘッダーが存在しない場合、または指定した値でない場合は、ウェブフックを拒否する必要があります。

保存してテストを選択した後、ウェブフックはポリシーに添付できる宛先として設定されるはずです。

Cloudflareがウェブフックを送信すると、次のスキーマを持ちます:

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

一般的なウェブフックの制限

Cloudflareの一般的なウェブフック通知は、ポート80または443の公開解決可能なIPアドレスにのみ送信されます。

プライベートIPアドレスまたは異なるポートで一般的なウェブフック通知を受信したい場合は、Workersを使用して通知を受信して転送するか、接続されたアプリケーションにルーティングするためにCloudflare Tunnelを設定できます。

Workersと一般的なウェブフックの使用

Cloudflare Workersを一般的なウェブフックと組み合わせて、ウェブフックを受け入れる任意のサービスに通知を配信できます。

Cloudflareには、Workersと一般的なウェブフックの使用方法を理解するための例のツールがあります。提供された例は、一般的なウェブフック応答をRocket.Chatに配信できるように変換します。提供されたコードには、例をニーズに合わせて適応するプロセスをガイドするための詳細なコメントが付いています。

人気のウェブフックサービス

Google Chat

Google Chatの場合:

  • Secret: 秘密はURLの一部です。Cloudflareはこの情報を自動的に解析し、ユーザーからの入力は必要ありません。
  • URL: URLはGoogle Chatチャンネルのアドレスによって異なります。

Slack

Slackの場合:

  • Secret: 秘密はURLの一部です。Cloudflareはこの情報を自動的に解析し、ユーザーからの入力は必要ありません。
  • URL: URLはSlackチャンネルのアドレスによって異なります。

DataDog

DataDogの場合:

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

Discord

Discordの場合:

  • Secret: 秘密はURLの一部です。Cloudflareはこの情報を自動的に解析し、ユーザーからの入力は必要ありません。
  • URL: URLはDiscordチャンネルのアドレスによって異なります。

OpsGenie

OpsGenieの場合:

  • Secret: 秘密はOpsGenieのREST APIのAPIキーです。
  • URL: https://api.opsgenie.com/v2/alerts

Splunk

Splunkの場合:

  • Secret: 秘密は必須で、ユーザーが入力する必要があります。これはSplunkがtokenと呼ぶものです。詳細については、Splunkのドキュメントを参照してください。
  • URL:
    1. サポートされているSplunkエンドポイントは、services/collector、services/collector/raw、services/collector/eventの3つのみです。
    2. トークンでSSLが有効になっている場合、ポートは443でなければなりません。トークンでSSLが無効になっている場合、ポートは8088でなければなりません。
    3. サーバーでSSLが有効でなければなりません。

Feishu

Feishuの場合:

  • Secret: 秘密はURLの一部です。Cloudflareはこの情報を自動的に解析し、ユーザーからの入力は必要ありません。
  • URL: URLはカスタムロボットによって異なります。

Teams

Teamsの場合:

  • Secret: 秘密はURLの一部です。Cloudflareはこの情報を自動的に解析し、ユーザーからの入力は必要ありません。
  • URL: URLはIncoming Webhookコネクタが作成されるとTeamsによって提供されます。

ServiceNow

ServiceNowの場合:

  • Secret: ユーザーが決定します。Cloudflareの通知に入力された秘密がServiceNowと一致することを確認してください。詳細については、ServiceNowのドキュメントを参照してください。
  • URL: https://{servicenow_instance}.com/{base_api_path}

一般的なウェブフック

一般的なウェブフックの場合:

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

秘密の設定

Google Chat、Slack、Discord、またはFeishuのウェブフックを作成する際、秘密はURLの一部です。Cloudflareが自動的に抽出するのではなく、secretの値を明示的に設定するためにURLから秘密を削除することを選択できます。

これは、Terraformを使用してコードとしてウェブフックインフラストラクチャを定義する際に便利です。なぜなら、URLはCloudflareによって変更されないからです。

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