Webhook通知の送信¶
これらのシステムが提供するWebhookを使用して、Snowflake通知を以下の外部システムと統合できます。
注釈
Snowflakeは、上記以外の外部システムにはwebhook通知を送信しません。
これらのシステムのいずれかに通知を送信するには:
次のセクションでは、これらの外部システムへの通知の設定と送信方法について詳しく説明します。
Webhook URL のシークレットの作成¶
ほとんどのWebhookは、受信する HTTP リクエストに秘密キーまたは統合キーを必要とします。例:
Slackで受信Webhookを作成 する場合、Webhookの URL にはシークレットが含まれます。
`Microsoft Teams用のワークフローで受信Webhookを作成する `_ と、Webhookの URL にはシークレットが含まれます。
2025年11月30日まで、Microsoft Teamsは以下の形式の URLs をサポートします。
2025年11月30日以降 、Microsoft Teamsは以下の形式の URLs をサポートします。
PagerDuty サービスの統合を設定 する場合、統合は、Webhookリクエストに含める必要のある統合キーを提供します。
この秘密キーまたは統合キーには、一般的な文字列型の秘密オブジェクトを作成することをお勧めします。このシークレットオブジェクトは、以下のように使用されます。
Webhook通知統合を作成するとき、 CREATE NOTIFICATION INTEGRATION ステートメントでこのシークレットオブジェクトを指定します。
通知を送信するとき、シークレットオブジェクトはWebhookの HTTP リクエストを構築するために使用されます。
次の点に注意してください。
Webhook通知統合を作成する場合、このシークレットで USAGE 権限を持つロールを使用する必要があります。
このWebhookに通知を送信する場合、このシークレットの READ 権限と、シークレットを含むデータベースとスキーマの USAGE 権限を持つロールを使用する必要があります。
このオブジェクトを作成するには、 CREATE SECRET コマンドを使用し、 TYPE = GENERIC_STRING を指定します。そのオブジェクトを作成するスキーマで CREATE SECRET 権限を持つロールを使用する必要があります。
次のセクションでは、シークレットオブジェクトの作成例を示します。
例 1:Slack Webhookのシークレットの作成¶
URL で Slack Webhook に通知を送信したいとします。
この例では、Webhook URL にシークレット T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX が含まれています。
次のステートメントを実行して、このシークレット用のシークレットオブジェクトを作成します。
例2:Microsoft Teams Webhookのワークフローのシークレットの作成¶
以下の URLs の1つを使用して、 Microsoft Teams Webhookのワークフロー に通知を送信したいとします。
2025年11月30日まで:
Microsoft API データ形式については、https://adaptivecards.io/ をご参照ください。
この例では、Webhook URL にシークレット xxxxxxxx が含まれています。
次のステートメントを実行して、このシークレット用のシークレットオブジェクトを作成します。
例 3:PagerDutyWebhookのシークレットの作成¶
PagerDuty Webhook に通知を送信したい場合、統合キー(リクエストの routing_key フィールドに含める必要がある値)が以下であるとします。
次のステートメントを実行して、このシークレット用のシークレットオブジェクトを作成します。
Webhook通知統合の作成¶
Webhookタイプの通知統合を作成するには、 CREATE NOTIFICATION INTEGRATION コマンドを使用します。
このコマンドを実行する場合、以下のプロパティを設定して、通知用に送信されるべき HTTP リクエストを設定します。
TYPE を WEBHOOK に設定します。
URL、 HTTP リクエストボディ、またはヘッダーに含めるシークレットのために、 シークレットオブジェクトを作成 した場合、 WEBHOOK_SECRET にそのシークレットオブジェクトの名前を設定します。
Webhookの URL に WEBHOOK_URL を設定します。
Webhook URL にシークレットが含まれ、そのシークレット用にシークレットオブジェクトを作成した場合は、 URL のシークレットを SNOWFLAKE_WEBHOOK_SECRET に置き換えます。
Webhookのメッセージ本文が、この外部システム用に特定のフォーマットである必要がある場合(例えば、このシステムに送信されるすべてのメッセージが同じフォーマットを使用する必要がある場合)、 WEBHOOK_BODY_TEMPLATE をメッセージのテンプレートに設定します。このテンプレートでは:
メッセージの本文でシークレットが表示される SNOWFLAKE_WEBHOOK_SECRET プレースホルダーを使用します。
通知メッセージを表示するには、 SNOWFLAKE_WEBHOOK_MESSAGE プレースホルダーを使用します。
SYSTEM$SEND_SNOWFLAKE_NOTIFICATION を呼び出してメッセージを渡すと、ストアドプロシージャはテンプレートを使用してWebhookリクエストの本文を構築します。ストアドプロシージャは、 SNOWFLAKE_WEBHOOK_MESSAGE のプレースホルダーを、あなたが渡したメッセージに置き換えます。
Webhookへの HTTP リクエストが特定の HTTP ヘッダーを含まなければならない場合、 WEBHOOK_HEADERS にヘッダー名と値のリストを設定します。
ヘッダーの値で秘密が表示されるべき SNOWFLAKE_WEBHOOK_SECRET プレースホルダーを使用します。
次のセクションでは、さまざまなタイプの外部システム用にWebhook通知統合を作成する例を示します。
例1:Slack Webhookの通知統合を作成する¶
URL でSlack Webhookに通知を送信したいとします。
URL に表示されるシークレット T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX のために、 my_slack_webhook_secret という名前の シークレットオブジェクトを作成した とします。
以下のステートメントを実行して、通知統合を作成します。
例2:Microsoft Teams Webhookのワークフローに通知統合を作成する¶
以下の URLs の1つを使用して、Microsoft Teams Webhookのワークフローに通知を送信したいとします。
2025年11月30日まで:
URL に表示されるシークレット xxxxxxxx に対して、 my_teams_webhook_secret という名前の シークレットオブジェクトを作成 したとします。(Microsoft API データ形式の詳細については、 https://adaptivecards.io/ を参照してください)
以下のステートメントの1つを実行して、このWebhookの通知統合を作成します。
logic.azure.comURL の場合:environment.api.powerplatform.comURL の場合:
注釈
WEBHOOK_URL パラメーター内のURLからポート番号(:443)を省略しなければなりません 。
例3:PagerDutyWebhookの通知統合の作成¶
PagerDuty Webhookに URL で通知を送信したいとします。
my_pagerduty_webhook_secret という名前の シークレットオブジェクトを、メッセージ本文の routing_key ` フィールドに含まれるべき統合キー `` xxxxxx`` のために作成した <label-notifications_webhook_secret_teams>` とします。
以下のステートメントを実行して、通知統合を作成します。
Webhookに通知を送信する¶
Webhookに通知を送信するには:
SANITIZE_WEBHOOK_CONTENT 関数を渡して、メッセージからプレースホルダー(SNOWFLAKE_WEBHOOK_SECRET など)を削除します。
サニタイズされたメッセージを渡し、使用するWebhook通知統合の名前を指定して、 SYSTEM$SEND_SNOWFLAKE_NOTIFICATION ストアドプロシージャを呼び出します。
例えば、次のステートメントは、先に作成した通知統合を使用して、 JSON メッセージをSlack webhookに送信します。
この例では、プレーンテキスト(my message)でメッセージを渡しています。通知統合の WEBHOOK_BODY_TEMPLATE プロパティによって指定されたテンプレートからWebhookリクエストの本文を構築するとき、 SYSTEM$SEND_SNOWFLAKE_NOTIFICATION は SNOWFLAKE_WEBHOOK_MESSAGE プレースホルダーをあなたが渡すメッセージで置き換えます。
例えば、リクエストの本文に以下のテンプレートを指定したとします。
SYSTEM$SEND_SNOWFLAKE_NOTIFICATION は、以下の本文を持つリクエストを構築します。