添加Set Variable活动时Azure Synapse Pipeline报Bad Request错误
问题诊断与修复方案
核心错误原因
- 错误启用
setSystemVariable:该属性仅用于修改Azure Synapse内置的系统变量(如RunId、PipelineName),自定义变量pipelineReturnValue不能开启此配置,这是触发Bad Request的主要原因。 - Set Variable赋值格式错误:当前
value采用数组嵌套key-value的结构,不符合活动语法要求——自定义变量赋值需直接传入表达式或值,无需额外嵌套包装。 - 结果集引用需明确:
resultSets是结果集数组,若仅需查询返回的行数据,需指定索引定位到目标结果集(如resultSets[0].rows),否则可能引发类型不匹配。
修复后的Set Variable活动配置
将原Set Variable活动的typeProperties替换为以下内容:
"typeProperties": { "variableName": "pipelineReturnValue", "value": "@activity('Test query').output.resultSets[0].rows" }
完整修复步骤
- 移除/关闭
setSystemVariable:删除该属性或设为false,自定义变量不支持此配置。 - 修正赋值表达式:直接将
value设置为查询结果的表达式,无需数组和嵌套对象结构。 - 匹配变量类型:确保
pipelineReturnValue变量的类型设置为Array(存储行数据)或Object(存储完整结果集元数据),与表达式返回的类型一致。 - 验证结果集结构:在管道运行历史中查看
Test query活动的output,确认resultSets的结构,若查询返回多个结果集,可调整索引(如resultSets[1].rows)或直接存储整个resultSets数组。
内容的提问来源于stack exchange,提问作者Rafael
相关产品推荐
相关产品推荐

