You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将参数从Data Factory传递到Azure Function?动态表达式报错排查

问题根因

你的表达式写法不符合Azure Data Factory(ADF)动态内容在JSON请求体中的解析规则:

  • 直接将@pipeline().parameters.param1裸写在JSON字段值的位置,没有做合法的字符串包裹或整体动态表达式声明,ADF无法将表达式的求值结果正确填充到JSON对应位置,最终传到Azure Functions的参数值为null。
正确写法

根据参数类型可以选择两种方案:

1. 参数均为字符串类型

直接把ADF动态表达式放在JSON字段值的双引号内部即可:

{"param1":"@pipeline().parameters.param1","param2":"@pipeline().parameters.param2"}

2. 参数包含非字符串类型(数字、布尔等)或存在特殊字符

更稳妥的方案是用concat函数整体构造JSON串,用@()包裹整个动态内容,ADF会自动完成表达式求值和JSON拼接:

@concat(
    '{"param1":', 
    string(pipeline().parameters.param1), 
    ',"param2":', 
    string(pipeline().parameters.param2), 
    '}'
)

注意:如果是字符串类型的参数,需要在concat的拼接逻辑里手动给参数值前后加双引号,避免生成的JSON格式非法。

验证方法

你可以在ADF管道调试模式下,查看对应活动的输入Body详情,确认生成的JSON格式合法、参数值已被正确替换,再触发Azure Functions调用。

内容的提问来源于stack exchange,提问作者Fluxy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:54:02