如何在Lookup活动表达式中通过参数动态指定配置节获取source_path
动态指定配置节获取JSON属性的解决方案
问题背景
使用JSON文件存储管道配置,示例结构如下:
{ "process_delta": { "primary_keys": ["id"], "schema_name": "schema", "table_name": "table", "source_path": "folder/table/" } }
通过Lookup活动的固定表达式@activity('Lookup config details').output.firstRow.process_delta.source_path可正常读取process_delta节下的source_path,但需要通过管道参数动态指定配置节名称以实现管道复用,尝试@activity('Lookup config details').output.firstRow.@{pipeline().parameters.p_config_section}.source_path失败。
可行方案
在Azure Data Factory表达式中,动态访问对象属性需使用方括号索引语法,替代点语法的固定属性引用,直接将参数作为属性键传入:
@activity('Lookup config details').output.firstRow[pipeline().parameters.p_config_section].source_path
关键说明
- 点语法仅支持固定属性名,无法解析嵌套的参数引用
- 方括号
[]可接受动态生成的字符串作为属性键,参数值会被直接解析为目标配置节的名称,从而动态读取对应source_path
使用步骤
- 确保管道已定义字符串类型参数
p_config_section - 传入目标配置节名称(如
process_delta)作为参数值 - 运行管道即可自动读取对应配置节下的
source_path
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

