如何解决Synapse中无法选择Azure ML v2管道并启动作业的问题?
解决Synapse启动Azure Machine Learning v2管道作业的方法
方法1:通过「Azure Machine Learning批处理执行」活动调用批处理端点
由于你的Azure ML v2管道已部署为批处理端点,这是最直接的触发方式:
- 在Synapse管道中添加「Azure Machine Learning批处理执行」活动
- 关联已配置好的Azure ML链接服务
- 在「端点名称」下拉框中选择目标批处理端点(若未显示,检查链接服务身份是否拥有Azure ML工作区的
BatchEndpoint Contributor或ML Contributor权限) - 根据批处理端点需求配置输入/输出数据,可直接引用Synapse数据集或指定存储路径
- 保存并触发Synapse管道,即可启动对应的Azure ML管道作业
方法2:使用「Web」活动调用Azure ML REST API
若批处理执行活动无法识别端点,或需要更灵活的控制逻辑,可通过API调用实现:
- 配置Web活动的认证方式(如OAuth 2.0,使用拥有ML工作区权限的服务主体)
- 构造批处理端点的调用请求:
- 请求方法:
POST - 请求URL:
https://<ml工作区名称>.<区域>.api.azureml.ms/batch-endpoints/<端点名称>/jobs - 请求体示例(根据实际需求调整):
- 请求方法:
{ "properties": { "inputData": { "dataInputUri": "https://<存储账户>.blob.core.windows.net/<容器>/input" }, "outputData": { "dataOutputUri": "https://<存储账户>.blob.core.windows.net/<容器>/output" } } }
- 保存并触发Synapse管道,通过API调用触发Azure ML管道作业
关键检查项
- 确认链接服务使用的身份(托管标识/服务主体)拥有Azure ML工作区的对应权限
- 非自托管集成运行时需能访问Azure ML工作区的网络(若工作区启用虚拟网络,确保集成运行时在允许的网络范围内)
- 先在Azure ML门户中测试批处理端点,确认端点本身可正常触发作业
内容的提问来源于stack exchange,提问作者Braamstruik
相关产品推荐
相关产品推荐

