在订阅之间移动 Azure 机器学习工作区(预览版)

随着机器学习应用程序的要求发生变化,则可能需要将工作区移到其他 Azure 订阅。 例如,在下列情况下,可能需要移动工作区:

  • 将工作区从测试订阅提升至生产订阅。
  • 更改应用程序的设计和体系结构。
  • 将工作区移到具有更多可用配额的订阅。
  • 将工作区移到具有不同成本中心的订阅。

移动工作区时,将工作区及其内容迁移为单个自动化步骤。 下表描述了移动的工作区内容:

工作区内容 随工作区移动
数据存储 是的
数据资源
实验作业 是的
环境 是的
工作区中存储的模型和其他资产 是的
计算资源
端点

重要

工作区迁移目前处于公开预览阶段。 此预览版在提供时没有附带服务级别协议,不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。
有关详细信息,请参阅适用于 Azure 预览版的补充使用条款

先决条件

  • 来源订阅中的 Azure 机器学习工作区。 有关详细信息,请参阅创建工作区资源

  • 必须有管理来源订阅和目标订阅中资源的权限。 例如,在订阅级别的参与者或所有者角色。 有关角色的详细信息,请参阅 Azure 角色

    • 您需要拥有从源位置删除资源的权限。
    • 需要在目标位置创建资源的权限。
    • 移动不得违反目标位置中的 Azure 策略。
    • 分配给源工作区范围的任何角色都不会被迁移;你必须在目标工作区中重新创建这些分配。
  • 必须针对所需的资源提供程序注册目标订阅。 下表包含 Azure 机器学习所需的资源提供程序的列表:

    资源提供者 为什么需要它
    Microsoft.MachineLearningServices 创建 Azure 机器学习工作区。
    Microsoft.Storage Azure 存储帐户用作该工作区的默认存储。
    Microsoft.ContainerRegistry Azure 容器注册表被工作区用来生成 Docker 映像。
    Microsoft.KeyVault 该工作区使用 Azure 密钥保管库 来存储机密。
    Microsoft.Insights Azure 应用程序 Insights 用于监视工作区指标和诊断。
    Microsoft.Notebooks Azure 机器学习计算实例使用集成笔记本。
    Microsoft.ContainerService 如果计划将训练后的模型部署到 Azure Kubernetes 服务。

    如果计划将客户管理的密钥与 Azure 机器学习一起使用,则必须注册以下服务提供程序:

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

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

  • Azure CLI

    小窍门

    移动操作不使用用于机器学习的 Azure CLI 扩展。

支持的方案

  • 自动化工作区跨同一区域中的资源组或订阅移动。 有关详细信息,请参阅将资源移到新资源组或订阅

    注释

    在移动之前,工作区必须静止。 移动过程将删除计算并删除实时终结点或正在运行的试验。

    Azure 门户中移动资源步骤的屏幕截图。

  • 支持移动已配置专用终结点的工作区。 移动操作会断开专用终结点连接,并重新创建传递型专用终结点。 但是,移动之后新专用终结点(包括工作区专用终结点)的批准工作由你负责。

局限性

  • 工作区移动不适用于复制工作区或将单个资产(例如模型或数据集)从一个工作区移到另一个工作区。

  • 工作区移动不支持跨 Azure 区域进行迁移。

  • 工作区移动不支持跨 Microsoft Entra 租户进行迁移。

    小窍门

    有关手动移动租户的信息,请参阅将 Azure 订阅转移到其他 Microsoft Entra ID 一文。

  • 在执行移动操作期间,切勿使用工作区。 验证所有试验作业、数据分析作业和标记项目是否已完成。 还要验证推理终结点是否未调用。

  • 工作区在迁移期间不可用。

  • 在移动之前,必须从工作区中删除或分离计算和推理终结点。

  • 移动后,数据存储可能仍显示旧订阅信息。 有关手动更新数据存储的步骤,请参阅场景:移动具有非默认数据存储的工作区

不支持以下方案:

  • 包含计算资源(现有的计算资源或正在创建中的计算资源)的工作区。
  • 包含已部署服务的工作区
  • 带有在线终结点或部署的工作区。
  • 工作区已配置为使用客户管理的密钥
  • 标签项目当前正在运行中的工作区。
  • 与 Azure Databricks 关联的工作区。
  • 工作区跨区域移动。

准备并验证迁移

  1. 在Azure CLI中,将订阅设置为源工作区订阅。

    az account set -s origin-sub-id
    
  2. 验证源工作区是否未使用。 检查是否已完成任何试验作业、数据分析作业或标记项目。 还要验证推理终结点是否未调用。

  3. 从工作区中删除或分离任何计算,并删除任何推理终结点。 不支持移动计算和终结点。 另请注意,移动期间工作区不可用。

  4. 在新的订阅中创建目标资源组。 此资源组包含移动后的工作区。 目标和源必须位于同一区域。

    az group create -g destination-rg -l my-region --subscription destination-sub-id                  
    
  5. 使用以下命令验证工作区的移动操作。 若要在移动中包含关联的资源(如存储帐户、容器注册表、密钥保管库和应用程序见解),请将它们添加到 resources 列表中。 验证可能需要几分钟时间。 在此命令中,origin-rg 是源资源组,而 destination-rg 是目标。 订阅 ID 为 origin-sub-iddestination-sub-id,而工作区为 origin-workspace-name

    az resource invoke-action --action validateMoveResources --ids "/subscriptions/origin-sub-id/resourceGroups/origin-rg" --request-body "{  \"resources\": [\"/subscriptions/origin-sub-id/resourceGroups/origin-rg/providers/Microsoft.MachineLearningServices/workspaces/origin-workspace-name\"],\"targetResourceGroup\":\"/subscriptions/destination-sub-id/resourceGroups/destination-rg\" }"
    

移动工作区

验证成功后,移动工作区。 若要在移动操作中包含关联的资源,请将它们添加到 ids 参数。 此作可能需要几分钟时间。

az resource move --destination-group destination-rg --destination-subscription-id destination-sub-id --ids "/subscriptions/origin-sub-id/resourceGroups/origin-rg/providers/Microsoft.MachineLearningServices/workspaces/origin-workspace-name"

移动完成后,重新创建任何计算并在新位置重新部署任何联机终结点。

场景:移动具有非默认数据存储的工作区

自动化工作区移动操作不会移动非默认数据存储。 使用以下步骤在移动后手动更新数据存储凭据。

小窍门

还可以使用Azure CLI更新数据存储注册。 使用 az ml datastore delete 注销数据存储,并使用 az ml datastore create --file <datastore.yml> 将其重新注册到更新后的订阅和资源组中。 有关详细信息,请参阅 az ml 数据存储

  1. Azure 机器学习工作室中,选择“数据”,然后选择非默认数据存储。 对于每个非默认数据存储,检查“订阅 ID”和“资源组名称”字段是否为空。 如果是,请选择“更新身份验证”。

    数据资产概述的屏幕截图。

    在“更新数据存储凭据”对话框中,选择存储帐户移动到的订阅 ID 和资源组名称,然后选择“保存”。

    “更新数据存储凭据”对话框的屏幕截图。

  2. 如果已为非默认数据资产填充“订阅 ID”和“资源组名称”字段,并在移动前引用订阅 ID 和资源组,则使用以下步骤:

    1. 转到“ 数据存储 ”选项卡,选择数据存储,然后选择“ 注销”。

      注销数据存储链接的屏幕截图。

    2. 选择“创建”以新建数据存储。

      创建数据存储链接的屏幕截图。

    3. “创建数据存储 ”对话框中,使用与注销的数据存储相同的名称、类型和其他设置。 从新位置选择订阅 ID 和存储帐户。 最后,选择“创建”以新建数据存储注册。

      “创建数据存储”对话框的屏幕截图。

后续步骤