如何通过Synapse Notebook REST API传递参数执行笔记本?
解决Notebook REST API传参失败问题
核心排查点
- 确认请求方法:绝大多数支持传参的Notebook REST API要求使用
POST请求,而非GET。若用GET传递参数,即使参数附在URL中,也可能被API忽略或不支持。 - 检查参数格式:不同平台的API参数结构差异显著,以下是两个常见场景的正确格式:
- Databricks:参数需包裹在
notebook_params对象中,示例请求体:{ "notebook_path": "/path/to/your/notebook", "notebook_params": { "your_param_name": "param_value" } } - Azure Synapse:参数放在
parameters数组内,每个参数包含name和value字段,示例请求体:{ "name": "RunNotebook", "type": "Notebook", "typeProperties": { "notebookPath": "/path/to/your/notebook", "parameters": [ { "name": "your_param_name", "value": "param_value" } ] } }
- Databricks:参数需包裹在
- 核对参数名称:Notebook内定义的参数名与API传递的必须完全一致(多数平台大小写敏感)。例如Notebook中使用
input_param,API传Input_Param会导致匹配失败。 - 验证请求头:确保请求头包含正确的认证信息(如Bearer Token),且设置
Content-Type: application/json,否则参数无法被正确解析。
调试建议
- 直接复用平台官方的API请求示例,替换为你的Notebook路径和参数,先测试最简请求,排除格式问题。
- 查看API返回的错误码及信息:400错误通常为参数格式错误,403为权限问题,500可能是Notebook内部参数处理逻辑异常。
- 在Notebook内添加日志打印,确认参数是否成功传入(如Databricks使用
dbutils.widgets.get("param_name")获取参数后打印)。
内容的提问来源于stack exchange,提问作者david01
相关产品推荐
相关产品推荐

