你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本教程介绍如何使用 Azure 逻辑应用响应使用 Azure 事件网格接收的 Azure 服务总线事件。
先决条件
如果还没有 Azure 订阅,可以在开始前创建一个免费帐户。
创建服务总线命名空间
按照本教程中的说明操作:快速入门:使用 Azure 门户创建服务总线主题和主题订阅,以执行以下任务:
- 创建一个高级服务总线命名空间。
- 获取连接字符串。
- 创建服务总线主题。
- 创建主题的订阅。 本教程只需要一个订阅,因此无需创建订阅 S2 和 S3。
向服务总线主题发送消息
在本部分中,将使用示例应用程序将消息发送到在上一部分创建的服务总线主题。
克隆 GitHub azure-service-bus 存储库,或者下载 zip 文件并从中提取文件。
在 Visual Studio 中转到 \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 文件夹,然后打开 SBEventGridIntegration.sln 文件。
在 “解决方案资源管理器” 窗口中,展开 MessageSender 项目,然后选择 Program.cs。
将
<SERVICE BUS NAMESPACE - CONNECTION STRING>
替换为服务总线命名空间的连接字符串,并将<TOPIC NAME>
替换为主题的名称。const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>"; const string TopicName = "<TOPIC NAME>";
生成并运行程序以将五条测试消息(
const int numberOfMessages = 5;
)发送到服务总线主题。
使用逻辑应用接收消息
在本部分中,创建一个 Azure 逻辑应用,该应用使用 Azure 事件网格接收服务总线事件。
依次选择“+ 创建资源”、“集成”、“逻辑应用”。
在“创建逻辑应用”页上,执行以下步骤:
选择“消耗”“多租户”选项,然后选中“选择”。>
选择 Azure 订阅。
输入 资源组。 选择用于其他资源的资源组,例如之前创建的服务总线命名空间。
输入逻辑应用的名称。
为逻辑应用选择“区域”。
选择 审阅 + 创建。
在“查看 + 创建”页面中,选择“创建”,以创建逻辑应用。
在“部署完成”页中,选择“转到资源”来导航到“逻辑应用”页。
添加步骤以通过事件网格从服务总线接收消息
展开 开发工具 并选择 “逻辑应用模板”。
选择 “空白”工作流。 逻辑应用设计器随即打开。
在设计器中执行以下步骤:
选择 “添加触发器 ”,然后搜索 事件网格。
选择发生 资源事件的时间。
选择“登录”。
在“登录到帐户”页上,选择要用于登录到 Azure 的帐户。
在“当资源事件发生时”页上执行以下步骤:
对于“资源类型”,请选择“Microsoft.ServiceBus.Namespaces”。
选择 Azure 订阅。
对于“资源名称”,请选择你的服务总线命名空间。
在 “高级参数”下,选择向下箭头。
选择“后缀筛选器”,然后将焦点移出下拉列表。
对于“后缀筛选器”,请输入服务总线主题订阅的名称。
选择该 + 符号,然后选择 添加操作。
搜索“服务总线”。
选择“查看更多”,然后选择“从主题订阅获取消息”(速览锁定)。
执行以下步骤:
输入连接的名称。 例如“从主题订阅获取消息”。
确认“身份验证类型”设置为“访问密钥”。
对于“连接字符串”,请将连接字符串复制并粘贴到之前保存的服务总线命名空间。
选择“新建”。
选择主题和订阅。
添加步骤以处理和完成收到的消息
在本部分中,将添加步骤以在电子邮件中发送收到的邮件,然后完成该邮件。 在真实场景中,你会先在逻辑应用中处理消息,然后再完成该消息。
添加 For each 循环
选择 + 符号,然后选择 添加操作。
搜索并选择“For each”。
对于 从前面的步骤中选择输出,请选择闪电或输入 / 并选择 “插入动态内容”。
在“从主题订阅获取消息”下选择“正文”(速览锁定)。
在 For each 循环中添加一个步骤,以发送包含消息正文的电子邮件
在 For Each 循环中,选择 +,然后选择 添加操作。
搜索 Office 365 ,然后选择“ 查看更多”。
在搜索结果中选择“Office 365 Outlook”。
在操作列表中,选择“发送电子邮件(V2)”。
选择“登录”,然后按照步骤创建与 Office 365 Outlook 的连接。
在“发送电子邮件(V2)”窗口中,执行以下步骤:
在“正文”文本框内部单击,然后执行以下步骤:
对于“收件人”,请输入电子邮件地址。
对于“主题”,请输入“从服务总线主题的订阅收到的消息”。
在 正文中,选择表达式或输入 / 并选择 Insert 表达式。
输入以下表达式:
base64ToString(items('For_each')?['ContentData'])
选择 并添加。
在 For each 循环中添加另一个操作以完成消息
在 For Each 循环中,选择 +,然后选择 “添加操作”。
在逻辑应用设计器的工具栏上选择“保存”以保存逻辑应用。
测试应用程序
如果尚未向主题发送测试消息,请按照向服务总线主题发送消息部分中的说明将消息发送到主题。
导航到逻辑应用的 “概述 ”页。 然后选择底部窗格中的“ 运行历史记录 ”选项卡。 你会看到逻辑应用运行发送到主题的消息。 可能需要几分钟时间,你才能看到逻辑应用运行。 选择工具栏上的“刷新”,以刷新页面。
选择一个逻辑应用运行,查看详细信息。 请注意,它在 for 循环中处理了五条消息。
对于逻辑应用收到的每条消息,你都会收到一封电子邮件。
故障排除
如果在等待和刷新一段时间后没有看到任何调用,请执行以下步骤:
确认消息已到达服务总线主题。 查看“服务总线主题”页面上的“传入消息”计数器。 在这种情况下, MessageSender 应用程序运行一次,因此有 5 条消息。
确认服务总线订阅中有“无活动消息”。
如果在此页面上未看到任何事件,请验证“服务总线订阅”页面没有显示任何“活动消息计数”。 如果此计数器的数字大于零,则由于某些原因,订阅中的消息没有转发到处理程序函数(事件订阅处理程序)。 验证是否已正确设置事件订阅。
你还可在服务总线命名空间的“事件”页面上查看发送的事件数。
还可在“事件订阅”页面上看到事件已发送。 可在“事件”页面上选择事件订阅来访问此页面。
相关内容
- 详细了解 Azure 事件网格。
- 详细了解 Azure Functions。
- 详细了解 Azure 应用服务的逻辑应用功能。
- 详细了解 Azure 服务总线。