如何在Azure Logic App中遍历HTTP请求头并筛选x-开头请求头?
自动提取Azure Logic App中HTTP请求的x-开头请求头
要实现动态提取所有以x-开头的HTTP请求头,无需硬编码具体头名称,可通过Azure Logic Apps的内置表达式完成,步骤如下:
核心实现逻辑
替换原静态构造X-Headers的Compose动作,使用表达式直接过滤并生成目标请求头对象:
1. 替换X-Headers Compose动作
删除原静态定义的X-Headers动作,替换为以下内容:
"X-Headers": { "inputs": "@toObject(select(filter(keys(triggerOutputs()['headers']), startsWith(item(), 'x-')), createObject(item(), triggerOutputs()['headers'][item()])))", "runAfter": {}, "type": "Compose" }
2. 表达式拆解
keys(triggerOutputs()['headers']):提取所有请求头的名称(键),生成字符串数组filter(..., startsWith(item(), 'x-')):过滤数组中以x-开头的请求头名称select(..., createObject(item(), triggerOutputs()['headers'][item()])):将每个过滤后的键值对转换为{"键名": "值"}格式的对象数组toObject(...):将键值对数组转换为单一JSON对象,方便后续作为meta字段传入消息体
效果验证
当新增或移除x-开头的请求头时,无需修改Logic App定义,表达式会自动识别并处理所有符合规则的请求头,完全满足动态适配需求。
内容的提问来源于stack exchange,提问作者RuSm
相关产品推荐
相关产品推荐

