CREATE NOTIFICATION INTEGRATION (Webhook)

webhook 创建新的通知集成或替换现有集成。

另请参阅:

ALTER NOTIFICATION INTEGRATION (Webhook)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 的通知集成。

WEBHOOK_URL = 'url'

指定 Webhook 的 URL。URL 必须使用 https:// 协议。

只能指定以下 URLs:

  • Slack Webhook 的 URLs。这些 URLs 必须以 https://hooks.slack.com/services/ 开头。

  • Teams Webhook 的 URLs。这些 URLs 必须使用以下通用格式:

    https://<hostname>.webhook.office.com/webhookb2/<path_components>/IncomingWebhook/<path_components>
    
    Copy
  • PagerDuty Webhook 的 URLs。此 URL 必须是 https://events.pagerduty.com/v2/enqueue

如果 URL 包含一个密钥并且您 为该密钥创建了一个密钥对象,请使用 SNOWFLAKE_WEBHOOK_SECRET 替换 URL 中的密钥。例如,如果您 为 Slack Webhook 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 请求正文的模板。

如果 Webhook 要求 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,则还必须设置 WEBHOOK_HEADERS 以包括其中包含您的消息类型的 Content-Type 标头。例如,如果您将 WEBHOOK_BODY_TEMPLATE 设置为 JSON 格式的模板,则设置 WEBHOOK_HEADERS 以包括标头 Content-Type: application/json

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

默认:无值

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

指定一个 HTTP 标头和值列表,以包括在对 Webhook 的 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 <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

示例

请参阅 创建 Webhook通知集成

语言: 中文