你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在本教程中,将使用事件网格自定义主题将 Azure 事件网格命名空间收到的 MQTT 消息路由到 Azure 函数。
如果没有 Azure 订阅,可以注册 免费试用版。
使用事件网格触发器创建 Azure 函数
按照 使用 Visual Studio Code 创建 Azure 函数中的说明作,但使用 Azure 事件网格触发器 ,而不是使用 HTTP 触发器。
重要
在同一区域中创建所有资源。
应会看到类似于以下示例的代码:
using System;
using Azure.Messaging;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
namespace Company.Function
{
public class MyEventGridTriggerFunc
{
private readonly ILogger<MyEventGridTriggerFunc> _logger;
public MyEventGridTriggerFunc(ILogger<MyEventGridTriggerFunc> logger)
{
_logger = logger;
}
[Function(nameof(MyEventGridTriggerFunc))]
public void Run([EventGridTrigger] CloudEvent cloudEvent)
{
_logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
}
}
}
在本教程的后面部分,将此 Azure 函数用作主题订阅的事件处理程序。
注释
本教程已使用使用 .NET 8.0(独立)运行时堆栈的 Azure 函数进行测试。
创建事件网格主题(自定义主题)
创建事件网格主题。 请参阅 使用 Azure 门户创建自定义主题。 创建事件网格主题时,在“高级”选项卡上,为“事件架构”选择“云事件架构 v1.0”。
注释
在本教程的任何地方使用 云事件架构 v1.0 。
使用函数向主题添加订阅
在此步骤中,使用前面创建的 Azure 函数创建事件网格主题的订阅。
在 “事件网格主题 ”页上,选择“ 订阅”。
在 “创建事件订阅 ”页上,执行以下步骤:
为事件订阅输入 名称。
对于 事件架构,请选择 “云事件架构 1.0”。
对于“终结点类型”,请选择“Azure Function”。
然后选择“ 配置终结点”。
在 “选择 Azure 函数 ”页上,执行以下步骤:
对于“订阅”,请选择你的 Azure 订阅。
对于 资源组,请选择具有 Azure 函数的资源组。
对于 函数应用,请选择具有函数的 Functions 应用。
对于槽,请选择“生产”。
对于“函数”,选择你的 Azure 函数。
然后,选择“确认选择”。
在“ 创建事件订阅 ”页上,选择“ 创建”。
在 “事件订阅 ”页上,应会看到创建的订阅。
创建命名空间、客户端、主题空间和权限绑定
按照 快速入门:在 Azure 门户中使用事件网格命名空间发布和订阅 MQTT 消息 中的说明进行操作:
- 创建事件网格命名空间。
- 创建两个客户端。
- 创建主题空间。
- 创建发布者和订阅者权限绑定。
- 使用 MQTTX 应用 进行测试,以确认客户端能够发送和接收消息。
为命名空间启用托管标识
在本部分中,将为事件网格命名空间启用系统分配的托管标识。 然后,向标识授予“发送”事件网格自定义主题的权限。 然后,它可以将消息路由到自定义主题。 通过将托管标识添加到自定义主题上的“事件网格数据发送方”角色来启用它。
在 “事件网格命名空间 ”页上,选择“ 标识”。 选择 “打开 ”,然后选择 “保存”。
导航到事件网格自定义主题的事件网格主题。
选择左侧导航栏上的 访问控制 。
在 “访问控制 ”页上,选择“ 添加”,然后选择“ 添加角色分配”。
在“添加角色分配向导”的“角色”页上,选择“事件网格数据发件人”角色,然后选择“下一步”。
在“添加角色分配”的“成员”页上,选择“托管身份”,然后选择“选择成员”。
在 “选择托管标识 ”页上,执行以下步骤:
选择 Azure 订阅。
对于“托管标识”,选择“事件网格命名空间”。
选择与事件网格命名空间同名的托管标识。
选择 选择。
在 “添加角色分配 ”页上,选择“ 下一步”。
在 “审阅 + 分配 ”页上,查看设置,然后选择“ 审阅 + 分配”。
为 Azure 函数通过自定义主题配置消息路由
在本部分中,配置事件网格命名空间的路由,以便接收的消息路由到所创建的自定义主题。
在 “事件网格命名空间 ”页上,选择“ 路由”。
在“路由”页上,选择“启用路由”。
对于 “主题类型”,请选择“ 自定义主题”。
对于 “主题”,请选择为本教程创建的自定义主题。
对于交付的托管标识,选择“系统分配”。
选择应用。
使用 MQTTX 发送测试 MQTT 消息
将测试 MQTT 消息发送到命名空间,并确认函数接收它们。
按照 使用 MQTTX 应用进行发布和订阅 中的说明,将一些测试消息发送到事件网格命名空间。
下面是事件或消息的流: