如何通过Azure/Synapse API按单元格顺序获取Notebook运行输出用于审计排障
获取Azure Synapse Notebook单元格级完整输出的实操方案
需求明确
- 对所有Synapse管道运行执行后处理,直接审计每个Notebook单元格的输出(无需生成邮件等额外产物)
- 基于单元格内容(日志条目、堆栈跟踪)实现自动化+人工深度故障排查
- 需支持访问按执行顺序组织的单元格级输出结构的API,覆盖任意单元格执行失败的场景
可行方案:Azure REST API「Activity Runs - Query By Pipeline Run」
核心逻辑
该接口的output字段会返回Notebook活动的完整执行数据,其中包含按单元格顺序排列的输出内容,完全匹配需求。
调试步骤
- 构造请求URL
POST https://<你的工作区名称>.dev.azuresynapse.net/pipelineruns/<管道运行ID>/queryActivityRuns?api-version=2020-12-01 - 请求体配置
过滤出Notebook类型的活动,确保按执行时间排序:{ "filters": [ { "operand": "ActivityType", "operator": "Equals", "values": ["Notebook"] } ], "orderBy": [ { "orderBy": "ActivityRunStart", "order": "Asc" } ], "pageSize": 100 } - 解析单元格输出
响应的output.notebookOutput.cells数组就是按顺序排列的单元格执行结果,每个元素包含:cellIndex:单元格的顺序索引cellType:单元格类型(代码/Markdown)outputs:单元格的输出内容(含日志、错误堆栈)status:单元格执行状态(成功/失败)
关键注意点
- 调用API的身份需拥有Synapse工作区的
Synapse Administrator或Synapse Contributor权限 - 若管道包含多个Notebook活动,可在请求体中添加
ActivityName过滤条件精准定位 - 失败单元格的
outputs字段会包含完整的错误堆栈,直接用于故障排查
内容的提问来源于stack exchange,提问作者WestCoastProjects
相关产品推荐
相关产品推荐

