Azure Data Factory报错:'item'未被识别为函数,如何配置?
解决Azure Data Factory中REST配置的'item'函数未识别报错
报错原因
item()是Azure Data Factory的内置迭代变量,仅在迭代场景(如ForEach活动、Lookup输出循环、数据集迭代绑定)中生效。如果你的REST活动/数据集未处于迭代上下文,直接调用item()就会触发'item' is not a recognized function错误。
关于@item参数的疑问
不需要手动配置名为@item的参数。item()是ADF自动提供的迭代变量,只有在迭代环境下才会生成,无需自定义参数。
具体解决方法
根据你的业务需求选择对应方案:
方案1:遍历多组Currency值调用API
如果需要批量处理多个Currency:
- 先用Lookup活动获取包含Currency列的数据源(如SQL表、CSV文件),得到待迭代的列表
- 添加ForEach活动,将Lookup输出的列表设为迭代项(表达式示例:
@activity('Lookup_Currency_List').output.value) - 在ForEach内部配置REST活动,此时URL中的
@{item().Currency}可正常识别,因为已处于迭代上下文
方案2:调用单个Currency值
如果仅需处理单个Currency:
- 直接将
@{item().Currency}替换为具体货币代码(如EUR) - 或定义管道/数据集参数(命名为
Currency),用@{pipeline().parameters.Currency}或@{dataset().parameters.Currency}引用参数值
关键检查点
确认当前REST活动是否处于ForEach或其他迭代容器内,若不在迭代上下文,必须替换item()引用逻辑,否则报错无法解决。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

