你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何将事件从事件网格基本主题发送到事件网格命名空间主题

本文介绍如何将事件从在主题、系统主题、域和合作伙伴主题等资源中创建的事件订阅转发到事件网格命名空间。

概述

事件网格基本层支持将“事件网格命名空间主题”用作“终结点类型”。 创建事件网格主题、系统主题、域或合作伙伴主题的事件订阅时,可以选择事件网格命名空间主题作为处理事件的终结点。

图像显示从事件网格基本主题转发到事件网格命名空间主题的事件。

命名空间主题作为事件网格基本事件订阅中的目标,可帮助你转换到事件网格命名空间,而无需修改现有工作流。 事件网格命名空间提供了你可能有兴趣在解决方案中使用的有趣的新增功能。 如果当前使用的是事件网格基本资源(如主题、系统主题、域和合作伙伴主题),则只需在当前主题中创建新的事件订阅,并选择事件网格命名空间主题作为处理程序目标。

本文介绍将 Azure 存储事件转发到事件网格命名空间的示例方案。 下面是概要步骤:

  1. 为 Azure 存储帐户创建系统主题并为系统主题启用托管标识。
  2. 将系统主题的托管标识分配给目标事件网格命名空间上的事件网格数据发送方角色。
  3. 使用事件网格命名空间作为事件处理程序创建系统主题的事件订阅,并使用托管标识进行事件传递。

先决条件

  1. 按照创建、查看和管理命名空间中的说明创建事件网格命名空间资源。
  2. 按照创建、查看和管理命名空间主题中的说明创建事件网格命名空间主题。
  3. 按照在命名空间主题中创建、查看和管理事件订阅中的说明,在命名空间主题中创建事件网格事件订阅。 此步骤是可选的,但可用于测试该方案。
  4. 按照创建存储帐户中的说明创建 Azure 存储帐户。

创建系统主题并为存储帐户启用托管标识

如果有存储帐户的现有系统主题,请导航到系统主题页。 如果没有,请创建一个系统主题。 然后,为存储帐户启用托管标识。

  1. 导航到 Azure 门户

  2. 在搜索栏中搜索“事件网格系统主题”,然后从搜索结果中选择它。

  3. 在“事件网格系统主题”页上,选择“+ 创建”。

    屏幕截图显示了“系统主题”页,其中选择了“创建”按钮。

  4. 在“创建事件网格系统主题”页中执行以下步骤:

    1. 对于“主题类型”,请选择“存储帐户”

    2. 对于“订阅”,请选择你要在其中创建系统主题的 Azure 订阅。

    3. 对于“资源组”,请选择系统主题的资源组。

    4. 对于“资源”,请选择你要为其创建系统主题的 Azure 存储资源。

    5. 在“系统主题详细信息”部分,对于“名称”,请为主题输入一个名称。

    6. 在页面底部选择“查看 + 创建”。

      屏幕截图显示“创建事件网格系统主题”页。

  5. 在“查看 + 创建”页上查看设置,然后选择“创建” 。

    屏幕截图显示“创建事件网格系统主题 - 查看并创建”页。

  6. 部署成功后,选择“转到资源”以导航到创建的系统主题的“事件网格系统主题”页。

针对系统主题启用托管标识

现在,针对创建的系统主题启用托管标识。 对于此示例,让我们为系统主题创建系统分配的托管标识。

  1. 在“事件网格系统主题”页面中,在左侧导航菜单上的“设置”下选择“标识”。

  2. 在“标识”页面上,为“状态”选择“开”

  3. 在命令栏上选择“保存”。

    屏幕截图显示系统主题的“标识”页。

  4. 在确认弹出窗口中,选择“是”以确认创建该托管标识

  5. 创建托管标识后,会看到标识的对象(主体)ID。

    在 Web 浏览器的当前标签页中,让“系统主题”页保持打开状态。

授予将事件发送到命名空间所需的标识权限

在最后一步中,你为存储帐户的系统主题创建了系统分配的托管标识。 在此步骤中,你授予标识将事件发送到目标或目标命名空间所需的权限。

  1. 启动 Web 浏览器的新标签页或窗口。 在 Azure 门户中,导航到事件网格命名空间。

  2. 在左侧菜单,选择“访问控制 (IAM)”

  3. 依次选择“添加”、“添加角色分配”

    屏幕截图显示事件网格命名空间的“访问控制”页。

  4. 在“角色”页上搜索并选择“事件网格数据发送者”角色,然后选择“下一步”。

    屏幕截图显示“访问控制”页,其中选择了“事件网格数据发送者”角色。

  5. 在“成员”页上,对于“分配访问权限”,请选择“托管标识”,然后选择“+ 选择成员”

    显示“成员”页的屏幕截图。

  6. 在“选择托管标识”页上,执行以下步骤:

    1. 对于“订阅”,请选择在其中创建了托管标识的 Azure 订阅

    2. 对于“托管标识”,请选择“事件网格系统主题”。

    3. 对于“选择”,请键入系统主题的名称。

    4. 在搜索结果中选择该托管标识。 托管标识的名称与系统主题的名称相同。

      屏幕截图显示选择了一个托管标识。

  7. 在“成员”页上,选择“下一步”。

  8. 在“查看 + 分配”页,查看设置,然后选择页面底部的“查看 + 分配”

创建存储系统主题的事件订阅

现在,你已准备好使用命名空间作为终结点,为源存储帐户创建系统主题的事件订阅。

  1. 在系统主题的“系统主题”页上,选择左侧菜单上的“概述”(如果尚未选择)。

  2. 在命令栏上选择“+ 事件订阅”。

    显示“事件网格系统主题”页的屏幕截图,其中已选中“事件订阅”按钮。

  3. 在“创建事件订阅”页上执行以下步骤:

    1. 对于“名称”,请输入事件订阅的名称

    2. 对于“事件架构”,请选择事件架构作为云事件架构 v1.0。 它是事件网格命名空间主题目标支持的唯一架构类型。

    3. 对于“筛选到事件类型”,请选择你要订阅的事件类型。

    4. 对于“终结点类型”,请选择“事件网格命名空间主题”

    5. 选择“配置终结点”

      屏幕截图显示“创建事件订阅”页,其中选择了“配置终结点”。

  4. 在“选择事件网格命名空间主题”页上,按照以下步骤操作:

    1. 对于“订阅”,请选择具有命名空间主题的 Azure 订阅、资源组和命名空间。
    2. 对于“事件网格命名空间主题”,请选择命名空间主题。
    3. 选择页面底部的“确认选择”
  5. 现在,请在“创建事件订阅”页上为“托管标识类型”选择“系统分配”

  6. 在页面底部选择“创建” 。

    屏幕截图显示如何创建订阅以将事件从事件网格基本主题转发到事件网格命名空间主题。

    若要测试该方案,请在 Azure Blob 存储中创建容器,并将文件上传到其中。 验证命名空间主题的事件处理程序或终结点是否接收 Blob 创建的事件。

    将 Blob 上传到 Azure 存储中的容器时,会出现以下情况:

    1. Azure Blob 存储将“已创建 Blob”事件发送到 Blob 存储的系统主题。
    2. 该事件被转发到命名空间主题,因为它是系统主题的事件处理程序或终结点。
    3. 命名空间主题订阅的终结点会接收转发的事件。

请参阅以下文章: