使用 Azure 事件网格将 Blob 存储事件路由到 Web 终结点(Azure 门户)

事件网格是一项全面托管的服务,可用于在许多不同的 Azure 服务和应用程序中轻松管理事件。 它简化了生成事件驱动的应用程序和无服务器应用程序的过程。 有关服务的概述,请参阅事件网格概述

在本文中,你将使用 Azure 门户执行以下任务:

  1. 创建 Blob 存储帐户。
  2. 订阅该 Blob 存储的事件。
  3. 通过将文件上传到 Blob 存储来触发事件。
  4. 在处理程序 Web 应用中查看结果。 通常,你会将事件发送到处理事件数据并执行操作的终结点。 为简单起见,将事件发送到一个收集并显示消息的 Web 应用。

如果没有 Azure 订阅,可在开始前创建一个试用帐户

完成后即可看到事件数据已发送到 Web 应用。

Screenshot that shows the sample Azure Event Grid Viewer app with an event.

创建存储帐户

  1. 登录到 Azure 门户

  2. 若要创建 Blob 存储,请选择“创建资源”。

  3. 在“搜索”中,输入“存储帐户”,然后从结果列表中选择“存储帐户”。

    Screenshot showing the search for Storage account on the Create a resource page.

  4. 在“存储帐户”页上,选择“创建”,开始创建存储帐户。 要订阅事件,请创建常规用途 v2 存储帐户或 Blob 存储帐户。

  5. 在“创建存储帐户”页中执行以下步骤:

    1. 选择 Azure 订阅。

    2. 对于“资源组”,创建一个新资源组或选择现有的资源组。

    3. 输入存储帐户的名称。

    4. 选择要在其中创建存储帐户的“区域”。

    5. 对于“冗余”,从下拉列表中选择“本地冗余存储(LRS)”。

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

      Screenshot showing the Create a storage account page.

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

      注意

      只有种类为“StorageV2 (常规用途 v2)”和“BlobStorage”的存储帐户支持事件集成。 “存储(常规用途 v1)”不支持与事件网格集成。

  6. 部署需要数分钟才能完成。 在“部署”页上,选择“转到资源”。

    Screenshot showing the deployment succeeded page with a link to go to the resource.

  7. 在“存储帐户”页上,在左侧菜单中选择“事件”。

    Screenshot showing the Events page for an Azure storage account.

  8. 使此页面在 Web 浏览器中保持打开状态。

创建消息终结点

在订阅 Blob 存储的事件之前,让我们创建事件消息的终结点。 通常情况下,终结点基于事件数据执行操作。 为了简化此快速入门,将部署用于显示事件消息的预生成 Web 应用。 所部署的解决方案包括应用服务计划、应用服务 Web 应用和 GitHub 中的源代码。

  1. 选择“部署到 Azure”将解决方案部署到你的订阅。

    Button to deploy to Azure.

  2. 在“自定义部署”页上执行以下步骤:

    1. 对于“资源组”,请选择你在创建存储帐户时创建的资源组。 这样就可以在完成本教程后,通过删除资源组来更轻松地进行清理。

    2. 对于“站点名称”,请输入 Web 应用的名称。

    3. 对于“托管计划名称”,请输入用于托管 Web 应用的应用服务计划的名称。

    4. 选择“查看 + 创建”。

      Screenshot showing the Custom deployment page.

  3. 在“查看 + 创建”页面上,选择“创建”。

  4. 部署需要数分钟才能完成。 在“部署”页上,选择“转到资源组”。

    Screenshot showing the deployment succeeded page with a link to go to the resource group.

  5. 在“资源组”页上,在资源列表中,选择你创建的 Web 应用。 在此列表中还可以看到应用服务计划和存储帐户。

    Screenshot that shows the selection of web app in the resource group.

  6. 在 Web 应用的“应用服务”页上,选择相应的 URL 以导航到该网站。 URL 应采用以下格式:https://<your-site-name>.chinacloudsites.cn

    Screenshot that shows the selection of link to navigate to web app.

  7. 确认你可以看到站点,但尚未有任何事件发布到站点。

    View new site.

    重要

    使 Azure 事件网格查看器窗口保持打开状态,以便在发布事件时查看这些事件。

注册事件网格资源提供程序

除非你以前用过事件网格,否则你需要注册事件网格资源提供程序。 如果你以前用过事件网格,请转到下一部分。

在 Azure 门户中,执行以下步骤:

  1. 在左侧菜单中选择“订阅”。

  2. 从订阅列表中选择要用于事件网格的订阅。

  3. 在“订阅”页左侧菜单的“设置”下,选择“资源提供程序”。

  4. 搜索 Microsoft.EventGrid,并确认“状态”为“未注册”。

  5. 在提供程序列表中选择“Microsoft.EventGrid”。

  6. 在命令栏上选择“注册”。

    Image showing the registration of Microsoft.EventGrid provider with the Azure subscription.

  7. 刷新以确保 Microsoft.EventGrid 的状态更改为“已注册”。

    Image showing the successful registration of Microsoft.EventGrid provider with the Azure subscription.

订阅 Blob 存储

订阅主题,以告知事件网格要跟踪哪些事件,以及要将事件发送到何处。

  1. 如果关闭了“存储帐户”页,请导航到你之前创建的 Azure 存储帐户。 在左侧菜单中,选择“所有资源”并选择你的存储帐户。

  2. 在“存储帐户”页上,在左侧菜单中选择“事件”。

  3. 依次选择“更多选项”和“Webhook”。 你正在使用终结点的 Webhook 将事件发送到查看器应用。

    Screenshot showing the selection of Web Hook on the Events page.

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

    1. 输入事件订阅的“名称”。

    2. 输入系统主题的名称 。 若要了解系统主题,请参阅系统主题的概述

      Screenshot showing the Create Event Subscription page with a name for the system topic.

    3. 对于“终结点类型”,请选择“Web Hook”。

      Screenshot showing the Create Event Subscription page with Web Hook selected as an endpoint.

  5. 对于“终结点”,请选择“选择终结点”,输入你的 Web 应用的 URL 并将 api/updates 添加到主页 URL(例如:https://spegridsite.chinacloudsites.cn/api/updates),然后选择“确认选择”。

    Screenshot showing the Select Web Hook page.

  6. 现在,在“创建事件订阅”页上,选择“创建”以创建事件订阅。

    Screenshot showing the Create Event Subscription page with all fields selected.

  7. 再次查看 Web 应用,并注意现已向该应用发送了订阅验证事件。 选择眼睛图标以展开事件数据。 事件网格发送验证事件,以便终结点可以验证它是否想要接收事件数据。 Web 应用包含用于验证订阅的代码。

    Screenshot showing the Event Grid Viewer with the subscription validation event.

现在,让我们触发一个事件,看事件网格如何将消息分发到终结点。

向终结点发送事件

通过上传一个文件来为 Blob 存储触发一个事件。 该文件不需要有任何特定内容。

  1. 在 Azure 门户中,导航到你的 Blob 存储帐户,然后在左菜单上选择“容器”。

  2. 选择“+ 容器”。 为容器命名,使用任意访问级别,然后选择“创建”。

    Screenshot showing the New container page.

  3. 选择新容器。

    Screenshot showing the selection of the container.

  4. 若要上传文件,请选择“上传”。 在“上传 Blob”页上,浏览并选择要上传用于测试的文件,然后在该页上选择“上传”。

    Screenshot showing Upload blob page.

  5. 浏览到你的测试文件并上传它。

  6. 现已触发事件,并且事件网格已将消息发送到订阅时配置的终结点。 消息采用 JSON 格式,它包含一个或多个事件的数组。 在以下示例中,JSON 消息包含一个事件的数组。 查看 Web 应用,将会看到已收到一个“已创建 Blob”事件。

    Screenshot showing the Event Grid Viewer page with the Blob Created event.

清理资源

如果打算继续处理此事件,请不要清除本文中创建的资源。 否则,请删除本文中创建的资源。

选择资源组,然后选择“删除资源组”。

后续步骤

了解如何创建自定义主题和事件订阅后,请详细了解事件网格的功能: