如何将Blob存储中JSON文件的完整内容存入ADF变量?
ADF从Blob存储获取JSON文件内容存入变量的操作步骤
核心实现依赖ADF原生Lookup活动,无需启动Databricks等计算集群,全程仅用ADF内置组件完成:
前提准备
- 已配置有权限读取目标Blob存储的链接服务(Linked Service)
- 创建指向目标固定路径JSON文件的数据集,文件格式需选择JSON格式,不要配置为二进制或其他格式
操作步骤
- 配置Lookup活动
- 在管道中新增Lookup活动,关联上述创建的JSON数据集
- 进入活动「设置」tab,根据你的JSON文件结构配置:如果是单对象JSON,勾选
First row only;如果是JSON数组需要读取全量内容,取消勾选First row only - 保持
Recursively、Enable partitioning两个选项为未勾选状态(仅读取固定单文件无需开启)
注意:不要使用Get Metadata活动,该活动仅返回文件大小、修改时间等元数据,无法读取文件实际内容
- 配置变量存储内容
- 在管道的「变量」面板创建对应类型的变量:如果JSON结构简单可选择字符串类型,如果是复杂嵌套结构建议选择对象类型,避免转义异常
- 在Lookup活动的后续节点添加Set variable活动,选择上述创建的变量,变量值填入对应表达式:
- 勾选
First row only的场景使用:@activity('你的Lookup活动名称').output.firstRow - 未勾选
First row only的场景使用:@activity('你的Lookup活动名称').output.value
- 勾选
- 后续参数化调用
调试管道确认变量取值为完整JSON内容后,后续Web活动调用GraphQL API时,直接引用该变量作为请求体即可实现参数化。
补充说明:ADF Lookup活动单文件读取最大限制为4MB,如果你的JSON文件超过该阈值,可临时生成Blob文件的SAS访问地址,通过Web活动直接调用该地址读取内容,变量值使用
@activity('你的Web活动名称').output赋值即可。
内容的提问来源于stack exchange,提问作者Mateusz Makowski
相关产品推荐
相关产品推荐

