CREATE NOTIFICATION INTEGRATION(ウェブフック)

ウェブフック 用に新しい通知統合を作成するか、既存の統合を置き換えます。

こちらもご参照ください。

ALTER NOTIFICATION INTEGRATION(ウェブフック)DESCRIBE INTEGRATIONDROP INTEGRATIONSHOW INTEGRATIONS

構文

CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [ IF NOT EXISTS ] <name>
  TYPE = WEBHOOK
  ENABLED = { TRUE | FALSE }
  WEBHOOK_URL = '<url>'
  [ WEBHOOK_SECRET = <secret_name> ]
  [ WEBHOOK_BODY_TEMPLATE = '<template_for_http_request_body>' ]
  [ WEBHOOK_HEADERS = ( '<header_1>'='<value_1>' [ , '<header_N>'='<value_N>', ... ] ) ]
  [ COMMENT = '<string_literal>' ]
Copy

必須パラメーター

name

統合の識別子(つまり、名前)を指定する文字列。アカウント内で一意である必要があります。

また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

ENABLED = { TRUE | FALSE }

統合の操作を開始するか、中断するかを指定します。

  • TRUE は、統合を有効にします。

  • FALSE は、メンテナンスのための統合を無効にします。Snowflakeとサードパーティサービス間の統合はいずれも機能しません。

TYPE = WEBHOOK

これはウェブフックの通知統合であることを指定します。

WEBHOOK_URL = 'url'

ウェブフックの URL を指定します。URL は https:// プロトコルを使用する必要があります。

値は URLs としてのみ指定できます。

  • Slackウェブフック用の URLs 。これらの URLs は https://hooks.slack.com/services/ で始まる必要があります。

  • Teams ウェブフック用の URLs 。これらの URLs には、以下の一般的な形式を使用しなければなりません:

    https://<hostname>.webhook.office.com/webhookb2/<path_components>/IncomingWebhook/<path_components>
    
    Copy
  • PagerDuty ウェブフック用の URLs 。この URL は https://events.pagerduty.com/v2/enqueue にする必要があります。

URL にシークレットが含まれ、そのシークレット用のシークレットオブジェクトを 作成した場合 、 URL のそのシークレットを SNOWFLAKE_WEBHOOK_SECRET に置き換えます。例えば、 がSlackのウェブフック URL にシークレット用のシークレットオブジェクトを作成した場合、 WEBHOOK_URL を以下に設定します。

WEBHOOK_URL='https://hooks.slack.com/services/SNOWFLAKE_WEBHOOK_SECRET'
Copy

オプションのパラメーター

WEBHOOK_SECRET = secret_name

この統合で使用する シークレットを指定します

WEBHOOK_URL や WEBHOOK_BODY_TEMPLATE、 WEBHOOK_HEADERS で SNOWFLAKE_WEBHOOK_SECRET プレースホルダーを使用している場合、通知を送信する際にプレースホルダーはこのシークレットに置き換えられます。

シークレットオブジェクトを含むデータベースとスキーマが、通知を送信するときにアクティブでない場合、 スキーマ名でシークレット名を修飾するか、データベース名とスキーマ名を修飾します 。例:

WEBHOOK_SECRET = my_secrets_db.my_secrets_schema.my_slack_webhook_secret
Copy

このパラメータを指定するには、シークレット(およびそれを含むデータベースとスキーマ)の USAGE 権限が必要です。

デフォルト: 値なし

WEBHOOK_BODY_TEMPLATE = 'template_for_http_request_body'

通知のために送信する HTTP リクエストのボディのテンプレートを指定します。

ウェブフックが HTTP リクエストのボディに特定の形式(例えば、特定の JSON 形式)を要求する場合、その形式を指定する文字列を設定します。この文字列の中では

  • メッセージにシークレットを含める必要があり、そのシークレット用のシークレットオブジェクトを 作成した場合 、そのシークレットをメッセージに表示する SNOWFLAKE_WEBHOOK_SECRET プレースホルダーを使います。

  • 通知メッセージを含める必要がある場合は、 SNOWFLAKE_WEBHOOK_MESSAGE プレースホルダーを使用してください。

例:

WEBHOOK_BODY_TEMPLATE='{
  "routing_key": "SNOWFLAKE_WEBHOOK_SECRET",
  "event_action": "trigger",
  "payload":
    {
      "summary": "SNOWFLAKE_WEBHOOK_MESSAGE",
      "source": "Snowflake monitoring",
      "severity": "INFO",
    }
  }'
Copy

WEBHOOK_BODY_TEMPLATE を設定した場合は、 Content-Type ヘッダーにメッセージのタイプを含めるために、 WEBHOOK_HEADERS も設定する必要があります。例えば、 WEBHOOK_BODY_TEMPLATE を JSON 形式のテンプレートに設定した場合、 WEBHOOK_HEADERS をヘッダー Content-Type: application/json を含むように設定します。

WEBHOOK_HEADERS=('Content-Type'='application/json')
Copy

デフォルト: 値なし

WEBHOOK_HEADERS = ( 'header'='value' [ , 'header'='value', ... ] )

ウェブフックの HTTP リクエストに含める HTTP ヘッダーと値のリストを指定します。

HTTP ヘッダーにシークレットを含める必要があり(例えば、 Authorization ヘッダー)、そのシークレットのためのシークレットオブジェクトを 作成した場合 、ヘッダー値の SNOWFLAKE_WEBHOOK_SECRET プレースホルダーを使用します。例:

WEBHOOK_HEADERS=('Authorization'='Basic SNOWFLAKE_WEBHOOK_SECRET')
Copy

デフォルト: 値なし

COMMENT = 'string_literal'

統合のコメントを指定する文字列(リテラル)。

デフォルト: 値なし

アクセス制御の要件

この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

CREATE INTEGRATION

アカウント

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

USAGE

シークレット

WEBHOOK_SECRET プロパティをシークレット・オブジェクトに設定する場合、そのシークレット、およびそのシークレットを含むデータベースとスキーマに対して USAGE 権限を持っている必要があります。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

  • CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。

Webhook通知統合の作成 をご参照ください。