如何通过Azure SDK for Python获取Azure ML环境对应的ACR镜像URL?
获取Azure ML环境对应ACR镜像URL的替代方案
方法1:调用Azure ML REST API直接查询
通过环境名称和版本调用REST API的环境详情接口,响应里的imageBuildDetails字段包含完整ACR镜像地址。
示例Python代码:
import requests from azure.identity import DefaultAzureCredential # 替换为你的实际参数 subscription_id = "你的订阅ID" resource_group = "资源组名称" workspace_name = "工作区名称" env_name = "环境名称" env_version = "环境版本" # 获取认证令牌 cred = DefaultAzureCredential() token = cred.get_token("https://management.azure.com/.default").token # 构造API请求地址 api_url = f"https://management.azure.com/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.MachineLearningServices/workspaces/{workspace_name}/environments/{env_name}/versions/{env_version}?api-version=2024-04-01" # 发送请求并提取镜像URL headers = {"Authorization": f"Bearer {token}"} response = requests.get(api_url, headers=headers) env_data = response.json() acr_image_url = env_data.get("properties", {}).get("imageBuildDetails", {}).get("imageUri") print(acr_image_url)
方法2:使用Azure CLI查询
通过az ml environment show命令配合--query参数直接提取镜像地址:
az ml environment show --name <环境名称> --version <环境版本> --workspace-name <工作区名称> --resource-group <资源组名称> --query "properties.imageBuildDetails.imageUri" -o tsv
方法3:从环境构建运行记录中提取
仅适用于通过构建生成的环境(基于conda文件/基础镜像构建的环境),可通过关联的构建运行记录获取镜像URL:
from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential # 初始化ML客户端 ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name) # 获取环境对象 env = ml_client.environments.get(name=env_name, version=env_version) # 获取关联的构建运行并提取镜像URL build_run = ml_client.jobs.get(env.properties.build.id) acr_image_url = build_run.properties.get("imageUri") print(acr_image_url)
内容的提问来源于stack exchange,提问作者Davinder Singh
相关产品推荐
相关产品推荐

