创建通知集成以向 Google Cloud Pub/Sub 主题发送通知¶
要向 Google Cloud Pub/Sub 主题发送通知,您必须为该主题创建通知集成。要这样做,请执行以下操作:
第 1 步:创建 Pub/Sub 主题¶
创建一个 Pub/Sub 主题,该主题可以接收来自 Snowflake 的错误通知消息,或者重用现有主题。可以使用 Cloud Shell (https://cloud.google.com/shell) 或 Cloud SDK (https://cloud.google.com/sdk) 创建主题。有关更多信息,请参阅 Pub/Sub 文档中的 创建和使用主题 (https://cloud.google.com/pubsub/docs/admin)。
例如,执行以下命令以创建一个空主题:
gsutil notification create -t <topic>
如果主题已存在,则该命令将使用该主题;如果不存在,将创建一个新主题。
第 2 步:创建 Pub/Sub 订阅¶
(可选)创建对 Pub/Sub 主题的订阅以检索通知。可以使用 Cloud Console、gcloud
命令行工具或 Cloud Pub/Sub API,创建一个采用拉取传递方式的订阅。有关说明,请参阅 Pub/Sub 文档中的 管理主题和订阅 (https://cloud.google.com/pubsub/docs/admin)。
第 3 步:在 Snowflake 中创建通知集成¶
运行 CREATE NOTIFICATION INTEGRATION 命令创建通知集成。集成是 Snowflake 对象,可引用您创建的 Pub/Sub 主题。
Snowflake 将通知集成与为您的账户创建的 Google Cloud Platform (GCP) 服务账户相关联。Snowflake 创建一个服务账户,该账户由 Snowflake 账户中的所有 GCP 通知集成引用。通知集成的 GCP 服务账户不同于为存储集成创建的服务账户。
运行命令时,为推送通知设置参数。对于云提供商参数,将 GCP_PUBSUB_TOPIC_NAME 设置为 您先前创建的主题 的名称。
例如:
CREATE NOTIFICATION INTEGRATION my_notification_int
ENABLED = TRUE
DIRECTION = OUTBOUND
TYPE = QUEUE
NOTIFICATION_PROVIDER = GCP_PUBSUB
GCP_PUBSUB_TOPIC_NAME = 'projects/sdm-prod/topics/mytopic';
第 4 步:授予 Snowflake 对 Pub/Sub 订阅的访问权限¶
执行 DESCRIBE INTEGRATION 命令以显示您刚刚创建的通知集成的属性。
例如,要显示名为
my_notification_int
的通知集成的属性,请执行以下操作:DESC NOTIFICATION INTEGRATION my_notification_int;
记录 GCP_PUBSUB_SERVICE_ACCOUNT 属性的值(服务账户名称),其格式如下:
<service_account>@<project_id>.iam.gserviceaccount.com
以项目编辑者身份登录 Google Cloud Platform Console。
从主页控制面板中选择 Big Data » Pub/Sub » Subscriptions。
选择要配置访问权限的订阅。
选择右上角的 SHOW INFO PANEL。订阅的信息面板将滑出。
在 Add members 字段中,搜索您记录的服务账户名称。
从 Select a role 下拉列表中,选择 Pub/Sub Publisher。
选择 Add。
服务账户名称将添加到信息面板中的 Pub/Sub Publisher 角色下拉列表中。