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

Azure Data Factory API查找活动使用变量报错的排查

Azure Data Factory Lookup活动请求体中使用日期变量的正确写法

核心问题分析

直接在JSON请求体中写入@variables('Date')会导致ADF无法正确解析表达式,或者变量格式不符合API要求,进而触发400 Bad Request错误。需要确保表达式正确嵌入,同时变量格式匹配API预期的yyyy-MM-dd字符串格式。

正确写法示例

方法1:使用表达式模式(推荐,避免字符串拼接错误)

点击Lookup活动请求体输入框旁的蓝色fx按钮切换到表达式模式,使用ADF内置函数构造合法JSON:

@{
    createObject(
        'Id', 'Blah',
        'value', 0,
        'peak', 1000,
        'filters', createObject(
            'StatMin', '1983-09-05',
            'StatMax', '2024-04-05',
            'ModMin', '1969-10-15',
            'ModMax', variables('Date')
        )
    )
}

如果Date变量是日期类型而非字符串,需要先转换格式:

@{
    createObject(
        'Id', 'Blah',
        'value', 0,
        'peak', 1000,
        'filters', createObject(
            'StatMin', '1983-09-05',
            'StatMax', '2024-04-05',
            'ModMin', '1969-10-15',
            'ModMax', formatDateTime(variables('Date'), 'yyyy-MM-dd')
        )
    )
}

方法2:文本模式下嵌入表达式

若保持文本模式,需将变量用@{}包裹,确保JSON语法合法:

{
    "Id": "Blah",
    "value": 0,
    "peak": 1000,
    "filters": {
        "StatMin": "1983-09-05",
        "StatMax": "2024-04-05",
        "ModMin": "1969-10-15",
        "ModMax": "@{variables('Date')}"
    }
}

同样,若变量是日期类型,替换为格式转换后的表达式:

"ModMax": "@{formatDateTime(variables('Date'), 'yyyy-MM-dd')}"

额外排查要点

  • 确认Date变量的实际输出:通过Debug模式查看变量值,确保是yyyy-MM-dd格式的字符串,而非日期对象或其他格式
  • 验证请求体合法性:将替换后的请求体复制到Postman中测试,确认API是否能正常响应,排除API本身的参数校验问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:12:17