ALTER NOTIFICATION INTEGRATION (Webhook)¶
修改现有通知集成的属性,用于 webhook。
- 另请参阅:
CREATE NOTIFICATION INTEGRATION (Webhook)、DESCRIBE INTEGRATION、DROP INTEGRATION、SHOW 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
}
参数¶
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>
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'
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
您必须拥有对密钥(以及包含它的数据库和架构)的 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", } }'
如果设置了 WEBHOOK_BODY_TEMPLATE,则还必须设置 WEBHOOK_HEADERS 以包括其中包含您的消息类型的
Content-Type
标头。例如,如果您将 WEBHOOK_BODY_TEMPLATE 设置为 JSON 格式的模板,则设置 WEBHOOK_HEADERS 以包括标头Content-Type: application/json
:WEBHOOK_HEADERS=('Content-Type'='application/json')
默认:无值
WEBHOOK_HEADERS = ( 'header'='value' [ , 'header'='value', ... ] )
指定一个 HTTP 标头和值列表,以包括在对 Webhook 的 HTTP 的请求中。
如果 HTTP 标头必须包含一个密钥(例如,
Authorization
标头),并且您 为该密钥创建了一个密钥对象,请在标头值中使用 SNOWFLAKE_WEBHOOK_SECRET 占位符。例如:WEBHOOK_HEADERS=('Authorization'='Basic SNOWFLAKE_WEBHOOK_SECRET')
默认:无值
COMMENT = 'string_literal'
字符串(字面量),用于指定集成注释。
默认:无值
UNSET ...
取消设置集成的一个或多个属性,这会将属性重置为其默认值:
ENABLED
WEBHOOK_SECRET
WEBHOOK_BODY_TEMPLATE
WEBHOOK_HEADERS
COMMENT
要使用单个 ALTER 语句取消设置多个属性或参数,请使用逗号分隔每个属性或参数。
取消设置属性或参数时,只指定属性或参数名称(除非上述语法表明您应该指定值)。指定值会返回错误。
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
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 权限。 |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。