创建通知集成,向 Microsoft Azure 事件网格主题发送通知

要向 Microsoft Azure 事件网格主题发送通知,必须为该主题创建通知集成。要这样做,请执行以下操作:

  1. 创建自定义事件网格主题

  2. 创建通知集成

备注

目前,该功能仅限于 Microsoft Azure 上托管的 Snowflake 账户。

创建自定义事件网格主题

事件网格主题提供源发送事件通知的端点。创建专用主题,接收 Snowflake 发布的通知。

备注

如果计划使用主题来通知 任务管道 中的错误,可以使用单个主题来通知所有任务或管道的错误。

有关创建事件网格主题的说明,请参阅 事件网格文档 (https://docs.microsoft.com/en-us/azure/event-grid/custom-event-quickstart)。

记录事件网格主题端点,稍后您将在这些说明中需要它。

(可选)订阅该主题,以告知事件网格您想要跟踪哪些事件以及将这些事件发送到何处。

在 Snowflake 中创建通知集成

检索租户 ID

检索 Azure 租户 ID,稍后您将在这些说明中需要它。

  1. 登录 Microsoft Azure 门户。

  2. Navigate to Azure Active Directory » Properties. Record the Tenant ID value for reference later. The directory ID, or tenant ID, is needed to generate the consent URL that grants Snowflake access to the Event Grid topic.

创建通知集成

运行 CREATE NOTIFICATION INTEGRATION 命令创建通知集成。集成是一个引用您创建的事件网格主题的 Snowflake 对象。

运行命令时,将这些参数设置为以下值:

例如:

CREATE NOTIFICATION INTEGRATION my_notification_int
  ENABLED = TRUE
  DIRECTION = OUTBOUND
  TYPE = QUEUE
  NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
  AZURE_EVENT_GRID_TOPIC_ENDPOINT = 'https://myaccount.region-1.eventgrid.azure.net/api/events'
  AZURE_TENANT_ID = 'mytenantid';
Copy

授予 Snowflake 对该主题的访问权限

  1. 执行 DESCRIBE NOTIFICATION INTEGRATION 命令以显示您刚刚创建的通知的属性。

    例如,要显示名为 my_notification_int 的通知集成的属性,请执行以下操作:

  2. 记录以下属性的值:

    • AZURE_CONSENT_URL

      Microsoft 权限请求页面的 URL。

    • AZURE_MULTI_TENANT_APP_NAME

      为账户创建的 Snowflake 客户端应用程序的名称。在本部分后面的步骤中,需要授予此应用程序必要的权限,使其获取允许主题的访问令牌。

  3. 在 Web 浏览器中,导航到 AZURE_CONSENT_URL 属性指定的 URL。该页面显示 Microsoft 权限请求页面。

  4. 选择 Accept。此操作允许向为 Snowflake 账户创建的 Azure 服务主体授予对租户内指定资源的访问令牌。仅当您授予服务主体对容器的适当权限时,才能成功获取访问令牌(请参阅下一步)。

    Microsoft 权限请求页面会重定向到 Snowflake 公司站点 (snowflake.com)。

  5. 登录 Microsoft Azure 门户。

  6. Navigate to Azure Active Directory » Enterprise applications. Verify that the Snowflake application identifier you recorded earlier (the value of the AZURE_MULTI_TENANT_APP_NAME property) is listed.

    重要

    如果以后在 Azure AD 中删除 Snowflake 应用程序,通知集成将会停止工作。

  7. Navigate to Event Grid Topics » topic_name, where topic_name is the name of the topic you created to receive event notifications.

  8. Select Access Control (IAM) » Add role assignment.

  9. 搜索 Snowflake 服务主体。这是您之前记录的 AZURE_MULTI_TENANT_APP_NAME 属性中的标识。在 AZURE_MULTI_TENANT_APP_NAME 属性中搜索下划线 之前 的字符串。

    重要

    • Azure 可能需要一个小时或更长时间才能创建通过此部分中的 Microsoft 请求页面请求的 Snowflake 服务主体。如果服务主体不能立即使用,我们建议等待一两个小时,然后再次搜索。

    • 如果删除服务主体,通知集成将停止工作。

  10. 授予 Snowflake 应用程序 EventGrid 数据发送者 (https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#eventgrid-data-sender) 权限。

语言: 中文