配置任务以发送成功通知¶
Snowflake 可以在任务图成功完成时,将成功通知推送到云消息传递服务。本主题提供有关使用云消息传递为任务配置成功通知支持的说明。
成功通知集成仅在任务图的根任务上指定。Snowflake 仅在整个任务图成功执行时发送成功通知,并且不会为任何成功执行的独立任务发送通知,这与 错误通知集成 不同。
备注
无服务器任务和用户管理任务(即依赖虚拟仓库提供计算资源的任务)都支持任务成功通知功能。
要启用任务以发送成功通知,您必须将任务与消息通知集成关联。按照任务文档,使用 Amazon Web Services Simple Notification Service (AWS SNS)、Microsoft Azure Event Grid 或 Google Pub/Sub 创建通知集成。
创建新任务或修改现有任务以发送成功通知¶
在运行 CREATE TASK 命令以创建新任务时,或者运行 ALTER TASK 命令以修改现有任务时,您可以将任务与通知集成关联。
备注
要创建或修改可引用通知集成的任务,需要对通知集成拥有 USAGE 权限的角色。此外,角色必须分别拥有架构的 CREATE TASK 权限或任务的 OWNERSHIP 权限。
CREATE [ OR REPLACE ] TASK [ IF NOT EXISTS ] <name>
WAREHOUSE = <string>
[...]
SUCCESS_INTEGRATION = <integration_name>
ALTER TASK <name> SET SUCCESS_INTEGRATION = <integration_name>;
其中:
SUCCESS_INTEGRATION = integration_name
AWS SNS、Microsoft Azure Event Grid 或 Google Pub/Sub 平台级通知中创建的通知集成的名称。
显示成功通知¶
您可以运行 SHOW TASKS 或 DESCRIBE TASK,以查看任务成功通知。 Snowflake 将一个新列 success_integration 添加到 SHOW TASKS 和 DESCRIBE TASK 的输出。此字段为所有子任务显示 null。如果根任务上指定了通知集成,则此字段显示图形级成功集成的名称,否则为 null。
有效负载¶
成功消息的主体包括用于识别任务图的信息,例如 rootTaskName、rootTaskID、queryID 和 attemptNumber。以下是任务图成功通知的示例消息有效负载。
{"version":"1.0",
"messageId":"3ff1eff0-7ad7-493c-9552-c0307087e0c6",
"messageType":"USER_TASK_GRAPH_SUCCEEDED",
"timestamp":"2021-11-11T19:46:39.648Z",
"accountName":"AWS_UTEN_DPO_ACC",
"rootTaskName":"AWS_UTEN_DPO_DB.AWS_UTEN_SC.UTEN_AWS_TK1",
"rootTaskId":"01a03962-2b57-889e-0000-000000000001",
"messages": [{
"runId":"2021-11-11T19:46:23.826Z",
"scheduledTime":"2021-11-11T19:46:23.826Z",
"queryStartTime":"2021-11-11T19:46:24.879Z",
"graphCompletedTime":"2021-11-11T19:54:24.5591",
"queryId":"01a03962-0300-0002-0000-0000000034d8",
"attemptNumber":5
}]}
请注意,必须将字符串解析为 JSON 对象,才能处理有效负载中的值。