如何通过Python SDK获取AzureML环境的source字段?
解决AzureML环境source字段获取问题
不管用v1还是v2 Python SDK,都可以通过以下方式获取UI中显示的环境source字段:
AzureML SDK v1
v1的Environment对象没有直接暴露source属性,但可以通过序列化方法获取完整的服务端响应数据,从中提取source字段:
from azureml.core import Workspace, Environment # 加载工作区 ws = Workspace.from_config() # 获取目标环境 env = Environment.get(ws, name="你的环境名称", version="你的环境版本") # 序列化得到完整的服务端JSON数据 env_raw_data = env._serialize() # 提取source字段 source = env_raw_data.get("source") print(source)
AzureML SDK v2
v2高层API未封装source字段,可通过底层REST操作客户端获取完整的环境对象:
from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential # 初始化ML客户端 ml_client = MLClient( DefaultAzureCredential(), subscription_id="你的订阅ID", resource_group_name="你的资源组名称", workspace_name="你的工作区名称" ) # 通过底层操作获取完整环境信息 full_env = ml_client.environments._operation.get( resource_group_name=ml_client.resource_group_name, workspace_name=ml_client.workspace_name, name="你的环境名称", version="你的环境版本" ) # 提取source字段 source = full_env.source print(source)
或者直接调用REST客户端:
# 发送REST请求获取环境详情 response = ml_client._rest_client.environments.get( resource_group_name=ml_client.resource_group_name, workspace_name=ml_client.workspace_name, name="你的环境名称", version="你的环境版本" ) source = response.source print(source)
通用REST API方式
如果不想依赖SDK,可以直接调用AzureML的REST API:
发送GET请求到以下端点:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/environments/{name}/versions/{version}?api-version=2023-04-01
请求需携带Azure AD身份认证令牌,响应JSON中的source字段即为UI显示的内容。
内容的提问来源于stack exchange,提问作者asafal
相关产品推荐
相关产品推荐

