共用方式為

通过 Python SDK (v1) 管理 Azure 机器学习工作区

适用于:适用于 Python 的 Azure 机器学习 SDK v1

重要

本文提供有关使用 Azure 机器学习 SDK v1 的信息。 SDK v1 自 2025 年 3 月 31 日起弃用。 对它的支持将于 2026 年 6 月 30 日结束。 可以在该日期之前安装和使用 SDK v1。 使用 SDK v1 的现有工作流将在支持结束日期后继续运行。 但是,在产品发生体系结构更改时,可能会面临安全风险或中断性变更。

建议在 2026 年 6 月 30 日之前过渡到 SDK v2。 有关 SDK v2 的详细信息,请参阅 什么是 Azure 机器学习 CLI 和 Python SDK v2? 以及 SDK v2 参考

在本文中,使用 适用于 Python 的 SDK 创建、查看和删除 Azure 机器学习工作区,用于 Azure 机器学习

随着您的需求发生变化或自动化要求增加,您还可以 使用 CLI v2 或通过 VS Code 扩展来管理工作区。

必备条件

  • Azure 订阅。 如果没有 Azure 订阅,请在开始前创建一个试用版订阅。 立即尝试试用版订阅
  • 如果使用 Python SDK,请安装 SDK

限制

  • 创建新的工作区时,可以自动创建工作区所需的服务或使用现有的服务。 如果要使用来自不同于工作区所在的 Azure 订阅的现有服务,则必须在包含这些服务的订阅中注册 Azure 机器学习命名空间。 例如,在订阅 A 中创建一个使用订阅 B 中的存储帐户的工作区时,必须在订阅 B 中注册 Azure 机器学习命名空间,然后该工作区才能使用该存储帐户。

    Azure 机器学习的资源提供程序是 Microsoft.MachineLearningServices。 有关如何查看是否已注册或需要注册命名空间,请参阅《Azure 资源提供程序和类型》

    重要

    此信息仅适用于工作区创建期间提供的资源:Azure 存储帐户、Azure 容器注册表、Azure Key Vault 和 Application Insights。

  • 默认情况下,创建工作区时还会创建 Azure 容器注册表 (ACR)。 由于 ACR 当前不支持资源组名称中的 Unicode 字符,因此请使用不包含这些字符的资源组。

  • 对于工作区的默认存储帐户,Azure 机器学习不支持分层命名空间(Azure Data Lake Storage Gen2 功能)。

提示

创建工作区时,将创建一个 Azure Application Insights 实例。 如果需要,可以在创建群集后删除 Application Insights 实例。 删除它会限制从工作区收集的信息,并且故障排除可能会更加困难。 如果删除工作区创建的 Application Insights 实例,则重新创建它的唯一方法是删除并重新创建工作区

若要详细了解如何使用此 Application Insights 实例,请参阅《从机器学习 Web 服务终结点监视和收集数据》

创建工作区

可以直接在 Azure 机器学习工作室中创建工作区,但可用的选项有限。 或使用以下方法之一来更好地控制选项。

  • 默认规范。 默认情况下,代码会自动创建依赖资源和资源组。 以下代码创建一个名为 myworkspace 的工作区,并在 myresourcegroup 中创建一个名为 chinanorth2 的资源组。

    适用于:适用于 Python 的 Azure 机器学习 SDK v1

    from azureml.core import Workspace
    
    ws = Workspace.create(name='myworkspace',
                   subscription_id='<azure-subscription-id>',
                   resource_group='myresourcegroup',
                   create_resource_group=True,
                   location='chinanorth2'
                   )
    

    如果需要将一个现有的 Azure 资源组用于该工作区,请将 create_resource_group 设置为 False。

  • 多个租户。 如果您有多个帐户,请添加您想要使用的 Microsoft Entra ID 所对应的租户 ID。 在 Azure 门户的“Microsoft Entra ID 外部标识”下找到你的租户 ID。

    适用于:适用于 Python 的 Azure 机器学习 SDK v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='chinanorth2',
                auth=interactive_auth
                )
    
  • 主权云 。 如果你在主权云中操作,则需要使用额外的代码向 Azure 进行身份验证。

    适用于:适用于 Python 的 Azure 机器学习 SDK v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") 
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='chinanorth2',
                auth=interactive_auth
                )
    

如需更多信息,请参阅工作区 SDK 参考

如果访问订阅时遇到问题,请参阅 设置 Azure 机器学习资源和工作流的身份验证,以及 Azure 机器学习笔记本中的身份验证

网络

重要

有关将专用终结点和虚拟网络与工作区结合使用的详细信息,请参阅网络隔离和隐私

Azure Machine Learning Python SDK 提供 PrivateEndpointConfig 类。 将此类与 Workspace.create() 配合使用,创建具有专用终结点的工作区。 此课程需要您已拥有的虚拟网络。

高级

默认情况下,Microsoft维护存储工作区元数据的Azure Cosmos DB实例。 Azure 管理的密钥加密此数据。

若要限制工作区上Microsoft收集的数据,请在门户中选择高业务影响工作区,或在Python中设置 hbi_workspace=true。 有关此设置的详细信息,请参阅 静态加密

重要

只有在创建工作区时,才能选择高影响力业务。 在创建工作区后,不能更改此设置。

使用自己的数据加密密钥

如果提供自己的密钥进行数据加密,请创建Azure Cosmos DB实例,用于将元数据存储在Azure订阅中。 有关详细信息,请参阅用于 Azure 机器学习的客户管理的密钥

通过以下步骤提供你自己的密钥:

重要

在执行以下步骤之前,请完成以下作:

按照配置客户管理的密钥中的步骤完成以下操作:

  • 注册 Azure Cosmos DB 提供程序
  • 创建和配置 Azure Key Vault
  • 生成密钥

使用 cmk_keyvaultresource_cmk_uri 指定客户管理的密钥。

from azureml.core import Workspace

ws = Workspace.create(name='myworkspace',
            subscription_id='<azure-subscription-id>',
            resource_group='myresourcegroup',
            create_resource_group=True,
            location='chinanorth2'
            cmk_keyvault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/<keyvault-name>',
            resource_cmk_uri='<key-identifier>'
            )

下载配置文件

如果在工作区中使用 计算实例 来运行代码,请跳过此步骤。 计算实例会为你创建并存储此文件的副本。

如果你计划在本地环境使用引用此工作区 (ws) 的代码,请编写配置文件:

适用于:适用于 Python 的 Azure 机器学习 SDK v1

ws.write_config()

使用 Python 脚本或 Jupyter Notebook 将此文件放入到目录结构中。 它可以位于同一目录、名为 azureml 的子目录或父目录中。 创建计算实例时,请将此文件添加到 VM 上的正确目录。

连接到工作区

在Python代码中,创建一个工作区对象以连接到工作区。 此代码读取配置文件以找到您的工作区。 如果你尚未进行身份验证,系统会提示你登录。

适用于:适用于 Python 的 Azure 机器学习 SDK v1

from azureml.core import Workspace

ws = Workspace.from_config()
  • 多个租户。 如果您有多个帐户,请添加您想要使用的 Microsoft Entra ID 所对应的租户 ID。 在 Azure 门户的“Microsoft Entra ID 外部标识”下找到你的租户 ID。

    适用于:适用于 Python 的 Azure 机器学习 SDK v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.from_config(auth=interactive_auth)
    
  • 主权云 。 如果你在主权云中操作,则需要使用额外的代码向 Azure 进行身份验证。

    适用于:适用于 Python 的 Azure 机器学习 SDK v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") 
    ws = Workspace.from_config(auth=interactive_auth)
    

如果访问订阅时遇到问题,请参阅 Azure Machine Learning 资源和工作流的身份验证设置Azure Machine Learning 身份验证笔记本

查找工作空间

查看你可以使用的所有工作区的列表。

Azure 门户的“订阅”页中查找你的订阅。 复制 ID 并将其用于以下代码,以查看该订阅可用的所有工作区。

适用于:适用于 Python 的 Azure 机器学习 SDK v1

from azureml.core import Workspace

Workspace.list('<subscription-id>')

该方法 Workspace.list(..) 不返回完整的工作区对象。 它仅包含有关订阅中现有工作区的基础信息。 若要获取特定工作区的完整对象,请使用 Workspace.get(..)

删除工作区

不再需要工作区时,请删除它。

警告

如果为工作区启用了软删除,则可以在删除后恢复它。 如果未启用软删除,或者选择永久删除工作区的选项,则无法恢复该工作区。 有关详细信息,请参阅恢复已删除的工作区

提示

Azure 机器学习的默认行为是软删除工作区。 此行为意味着,工作区不会被立即删除,而是被标记为待删除。 有关详细信息,请参阅软删除

删除工作区 ws

适用于:适用于 Python 的 Azure 机器学习 SDK v1

ws.delete(delete_dependent_resources=False, no_wait=False)

默认操作不是删除与工作区关联的资源,例如容器注册表、存储帐户、密钥保管库和应用程序见解。 将delete_dependent_resources设置为True以便同时删除这些资源。

清理资源

重要

已创建的资源可用作其他 Azure 机器学习教程和操作方法文章的先决条件。

如果你不打算使用已创建的任何资源,请删除它们,以免产生任何费用:

  1. 在 Azure 门户的搜索框中输入“资源组”,然后从结果中选择它

  2. 从列表中选择你创建的资源组。

  3. 在“概述”页面上,选择“删除资源组”

    用于在 Azure 门户中删除资源组的选项的屏幕截图。

  4. 输入资源组名称。 然后选择“删除”。

故障排除

  • Azure 机器学习工作室中支持的浏览器:使用与您的操作系统兼容的最新浏览器。 支持以下浏览器:

    • Microsoft Edge(新的 Microsoft Edge(最新版)。不是 Microsoft Edge 旧版)
    • Safari(最新版本,仅限 Mac)
    • Chrome(最新版本)
    • Firefox(最新版本)
  • Azure 门户

工作区诊断

在 Azure 机器学习工作室或 Python SDK 中,可以在工作区上运行诊断。 运行诊断后,将返回检测到的任何问题的列表。 此列表包含指向可能的解决方案的链接。 有关详细信息,请参阅如何使用工作区诊断

资源提供程序错误

创建 Azure 机器学习工作区或工作区使用的资源时,可能会收到类似于下列错误之一:

  • No registered resource provider found for location {location}
  • The subscription is not registered to use namespace {resource-provider-namespace}

大多数资源提供程序会自动注册,但并非全部资源提供程序。 如果看到此消息,则需要注册服务提供商。

下表包含 Azure 机器学习所需的资源提供程序列表:

资源提供者 为什么需要它
Microsoft.MachineLearningServices 创建 Azure 机器学习工作区。
Microsoft.Storage Azure 存储帐户用作工作区的默认存储。
Microsoft.ContainerRegistry Azure 容器注册表被工作区用来生成 Docker 映像。
Microsoft.KeyVault 该工作区使用 Azure Key Vault 来存储机密。
Microsoft.Notebooks Azure 机器学习计算实例使用集成笔记本。
Microsoft.ContainerService 想要将训练的模型部署到 Azure Kubernetes 服务。

如果要将客户管理的密钥用于 Azure 机器学习,则必须注册以下服务提供商:

资源提供程序 为什么需要它
Microsoft.DocumentDB Azure Cosmos DB 实例记录工作区的元数据。
Microsoft.Search Azure 搜索为工作区提供索引编制功能。

如果要将托管虚拟网络用于 Azure 机器学习,则必须注册 Microsoft.Network 资源提供程序。 在为托管虚拟网络创建专用终结点时,工作区将使用此资源提供程序。

有关注册资源提供程序的信息,请参阅解决资源提供程序注册错误

删除 Azure 容器注册表

Azure 机器学习工作区使用 Azure 容器注册表 (ACR) 执行某些操作。 首次需要 ACR 实例时,它会自动创建一个。

警告

为工作区创建 Azure 容器注册表后,请勿将其删除。 这样做会使 Azure 机器学习工作区不起作用。

后续步骤

有了工作区后,请了解如何训练和部署模型

有关如何使用最新的安全更新使 Azure 机器学习保持最新状态的信息,请参阅漏洞管理