ALTER NOTIFICATION INTEGRATION (Webhook)

修改现有通知集成的属性,用于 webhook

另请参阅:

CREATE NOTIFICATION INTEGRATION (Webhook)DESCRIBE INTEGRATIONDROP INTEGRATIONSHOW INTEGRATIONS

语法

ALTER [ NOTIFICATION ] INTEGRATION [ IF EXISTS ] <name> SET
  [ 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>' ]

ALTER [ NOTIFICATION ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED               |
  WEBHOOK_SECRET        |
  WEBHOOK_BODY_TEMPLATE |
  WEBHOOK_HEADERS       |
  COMMENT
}
Copy

参数

name

指定要更改的集成的标识符。

如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

有关更多信息,请参阅 标识符要求

SET ...

为集成设置一个或多个属性:

ENABLED = { TRUE | FALSE }

指定是启动集成操作还是暂停集成操作。

  • TRUE 启用集成。

  • FALSE 禁用集成以便进行维护。Snowflake 与第三方服务之间的任何集成都无法正常工作。

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'

字符串(字面量),用于指定集成注释。

默认:无值

UNSET ...

取消设置集成的一个或多个属性,这会将属性重置为其默认值:

  • ENABLED

  • WEBHOOK_SECRET

  • WEBHOOK_BODY_TEMPLATE

  • WEBHOOK_HEADERS

  • COMMENT

要使用单个 ALTER 语句取消设置多个属性或参数,请使用逗号分隔每个属性或参数。

取消设置属性或参数时,只指定属性或参数名称(除非上述语法表明您应该指定值)。指定值会返回错误。

访问控制要求

用于执行此 SQL 命令的 角色 必须至少具有以下 权限

权限

对象

备注

OWNERSHIP

集成

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

USAGE

密钥

如果将 WEBHOOK_SECRET 属性设置为密钥对象,则必须对该密钥以及包含该密钥的数据库和架构拥有 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 关于元数据:

    注意

    客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

语言: 中文