从Azure Logic App工作流向Azure Service Bus发消息能否裁剪JSON事件数据?
实现方案
你的需求可以通过Azure Logic App原生内置操作实现,无需编写额外代码或调用其他函数服务,操作步骤如下:
- 找到你已搭建的Logic App工作流编辑界面,在Event Grid触发器节点的后面,新增**「组合(Compose)」**操作,该操作为Logic App原生自带,无需额外配置权限。
- 在组合操作的输入配置框中,直接构造你需要输出的JSON结构即可,以你需要提取
claims.name字段为例,输入内容如下:
{ "claims": { "name": @{triggerBody()?['claims']?['name']} } }
说明:
triggerBody()对应触发工作流的Event Grid完整JSON事件数据,表达式末尾的?为可选链操作符,对应字段不存在时也不会直接抛出运行错误,稳定性更高。
- 修改后续的Service Bus队列发送、邮件发送动作的内容配置,将原来引用的Event Grid完整输出替换为上述「组合」操作的输出即可。
扩展说明
如果你需要提取其他字段,只需按照JSON层级替换表达式中的字段名即可。例如需要额外提取事件ID,调整组合操作的输入内容即可:
{ "claims": { "name": @{triggerBody()?['claims']?['name']} }, "eventId": @{triggerBody()?['id']} }
内容的提问来源于stack exchange,提问作者pgbfnf
相关产品推荐
相关产品推荐

