Azure新手求助:Service Bus发送XML消息并通过Logic Apps解析的流程
操作步骤:通过Azure Service Bus发送XML消息并使用Logic Apps解析
一、创建并配置Azure Service Bus资源
- 登录Azure门户,搜索「Service Bus」进入服务页,点击「创建」
- 填写基础配置:选择订阅、资源组,命名空间名称要全局唯一,选好区域,定价层选「标准」(基础层不支持队列/主题),确认后完成部署
- 部署完成进入命名空间,左侧菜单选「队列」,点击「+队列」,输入队列名称(比如
xml-message-queue),其他默认,点击「创建」
二、发送XML格式消息到Service Bus队列
方式1:Azure门户直接发送测试消息
- 进入刚创建的队列,顶部点「发送消息」
- 在「消息正文」里粘贴XML内容,示例:
<Customer> <Id>1001</Id> <Name>张三</Name> <Email>zhangsan@example.com</Email> </Customer>
- 保持其他参数默认,点击「发送」即可
方式2:C#代码发送(可选)
- 新建.NET控制台项目,安装NuGet包
Azure.Messaging.ServiceBus - 编写代码替换连接字符串和队列名:
using Azure.Messaging.ServiceBus; using System.Xml.Linq; var connectionString = "你的Service Bus命名空间连接字符串"; var queueName = "xml-message-queue"; // 构造XML内容 var xmlMessage = new XElement("Customer", new XElement("Id", "1002"), new XElement("Name", "李四"), new XElement("Email", "lisi@example.com")); var xmlContent = xmlMessage.ToString(); // 发送消息 await using var client = new ServiceBusClient(connectionString); var sender = client.CreateSender(queueName); var message = new ServiceBusMessage(xmlContent); await sender.SendMessageAsync(message); Console.WriteLine("XML消息发送成功");
- 运行代码,消息会自动发送到目标队列
三、用Logic Apps接收并解析XML消息
步骤1:创建消费型Logic Apps
- 登录Azure门户,搜索「Logic Apps」进入服务页,点击「创建」
- 填写基础信息:订阅、资源组、逻辑应用名称、区域,类型选「消费型」,确认后完成部署
步骤2:配置Service Bus触发器
- 进入逻辑应用设计器,搜索「Service Bus」触发器,选择「当有消息可用时(自动完成)」
- 配置触发器:选择你的Service Bus命名空间、目标队列,其他参数默认,点击「创建」
步骤3:添加XML解析动作
- 点击「+ 新步骤」,搜索「XML」,选择「XML 解析」动作
- 在「内容」字段,从动态内容里选择触发器输出的「消息正文」
- 配置架构:如果有现成的XSD架构直接粘贴;没有的话点击「生成架构」,输入你的XML示例内容,系统会自动生成对应的架构,示例架构:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Customer"> <xs:complexType> <xs:sequence> <xs:element type="xs:string" name="Id"/> <xs:element type="xs:string" name="Name"/> <xs:element type="xs:string" name="Email"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
- 保存逻辑应用
步骤4:测试验证
- 回到Service Bus队列再发送一条XML消息
- 进入Logic Apps的「运行历史记录」,查看是否触发成功;也可以加个「发送电子邮件」动作,把解析后的字段(比如
Customer/Id、Customer/Name)作为邮件内容,直观验证解析结果
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

