如何用Azure Data Factory按每批2条批量POST JSON数据至REST API
解决JSON分批POST到REST API(每批最多2条)的方案
步骤1:用Lookup活动读取完整JSON数组
- 配置Lookup活动指向目标JSON文件,关闭First row only选项,确保读取整个数组,输出结构示例:
{ "value": [ {"name": "sa","salary": 1000,"age": 10}, {"name": "sb","salary": 2000,"age": 20}, ... ] }
步骤2:计算总批数并存储到变量
- 添加Set Variable活动,变量类型选
Int,变量名设为totalBatches,值用以下表达式计算:
该表达式会根据总记录数自动算出需要拆分的批次数(比如13条记录会生成7批)。@ceil(length(activity('Lookup JSON').output.value) / 2)
步骤3:用ForEach循环遍历每一批
- 添加ForEach活动,设置Items为:
这会生成从0到@range(0, variables('totalBatches'))totalBatches-1的数字序列,对应每一批的索引。 - 若API不支持并行请求,开启ForEach的Sequential选项。
步骤4:在循环内截取批次数据并POST
- 在ForEach内部添加Web Activity:
- 请求方法选
POST,填写API的目标URL。 - 请求体(Body)用以下表达式截取当前批次的2条记录:
表达式说明:@take(skip(activity('Lookup JSON').output.value, item()*2), 2)skip(..., item()*2):跳过前面item()*2条记录,定位到当前批次的起始位置take(..., 2):从起始位置取最多2条记录(最后一批若总记录数为奇数,会自动取剩余的1条)
- 根据API要求配置请求头(比如
Content-Type: application/json)。
- 请求方法选
验证效果
运行管道后,查看每个Web Activity的请求体,确认每批最多包含2条记录,最后一批(若存在)会自动适配剩余记录数。
内容的提问来源于stack exchange,提问作者Souhardya Maity
相关产品推荐
相关产品推荐

