从ADF调用AzureML SDKv2批量端点并传递参数的方法
问题1:查看批量端点部署的管道接收的参数
可以通过以下几种方式查看:
Azure ML Studio 界面
- 登录Azure ML工作区,导航到批量端点页面,找到目标端点
- 进入该端点的部署标签,点击对应部署的名称
- 在部署详情页,找到关联的管道组件,点击组件名称进入组件详情
- 在组件详情的输入部分,即可看到所有定义的字符串参数及其类型
Azure CLI v2 命令
执行以下命令获取部署详情,然后在输出中查找component.inputs节点:
az ml batch-deployment show \ --name <你的部署名称> \ --endpoint-name <你的端点名称> \ --resource-group <资源组名称> \ --workspace-name <工作区名称>
SDK v2 代码
使用Python代码获取部署关联的组件,遍历其输入参数:
from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential # 初始化ML客户端 ml_client = MLClient( DefaultAzureCredential(), subscription_id="<订阅ID>", resource_group_name="<资源组名称>", workspace_name="<工作区名称>" ) # 获取批量部署 deployment = ml_client.batch_deployments.get( name="<部署名称>", endpoint_name="<端点名称>" ) # 获取关联的管道组件 component = ml_client.components.get( name=deployment.component.name, version=deployment.component.version ) # 打印所有参数 print("管道接收的参数:") for param_name, param_spec in component.inputs.items(): print(f"- {param_name} (类型: {param_spec.type})")
问题2:从ADF调用批量端点并传递参数
SDK v2批量端点无法直接使用ADF的"机器学习执行"活动,需要通过Web活动实现,步骤如下:
1. 配置权限
创建一个服务主体,为其分配Azure ML工作区的批量端点参与者角色,确保该主体有权发起批量端点作业。
2. 配置ADF Web活动
- 在ADF管道中添加一个Web活动
- 配置活动的核心参数:
- URL:格式为
https://<工作区所在区域>.api.azureml.ms/batch-endpoints/<端点名称>/jobs - 方法:POST
- 身份验证:选择"服务主体",关联已创建的服务主体(需提前在ADF中配置Azure AD链接服务)
- 请求体:以JSON格式指定部署名称和参数值,示例:
- URL:格式为
{ "properties": { "deployment_name": "<你的部署名称>", "inputs": { "param1": "参数值1", "param2": "参数值2" } } }
3. 动态传递参数(可选)
如果需要从ADF变量或上游活动传递参数,可使用ADF的表达式语法替换请求体中的固定值,例如:
{ "properties": { "deployment_name": "<你的部署名称>", "inputs": { "param1": "@variables('var_param1')", "param2": "@activity('上游活动名称').outputs.param_value" } } }
内容的提问来源于stack exchange,提问作者Obiii
相关产品推荐
相关产品推荐

