你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Microsoft Dev Box 配置 Azure Compute Gallery

本文介绍如何配置 Azure 计算库并将其附加到 Microsoft Dev Box 中的开发人员中心。 借助 Azure Compute Gallery,可以为开发人员提供其开发箱的自定义映像。

Azure Compute Gallery 是用于管理和共享映像的服务。 库是存储在 Azure 订阅中的存储库,可帮助你围绕映像资源构建结构和组织。 Dev Box 支持 GitHub、Azure Repos 和 Bitbucket 存储库以提供映像库。

将计算库附加到 Microsoft Dev Box 中的开发人员中心后,可以根据存储在计算库中的映像创建开发箱定义。

使用库的优势包括:

  • 在单个位置维护映像,并在开发人员中心、项目和池中使用这些映像。
  • 开发团队可以使用映像定义的最新版本,以确保他们在创建开发箱时始终收到最新的映像。
  • 开发团队可以在受支持的映像版本上标准化,直到较新的版本通过验证。

若要详细了解 Azure Compute Gallery 以及如何创建库,请参阅:

先决条件

  • 开发人员中心。 如果没有可用的,请按照创建开发人员中心中的步骤操作。
  • 计算库。 存储在计算库中的映像可以在开发箱定义中使用,前提是它们符合计算库映像要求部分中列出的要求。

注意

Microsoft Dev Box 不支持社区库。

用于配置开发箱定义的库必须至少有一个映像定义和一个映像版本

创建虚拟机 (VM) 映像时,请从 Azure 市场中选择一个与 Microsoft Dev Box 兼容的映像。 下面是兼容映像的示例:

映像版本要求

映像版本必须满足以下要求:

  • 第 2 代

  • Hyper-V v2

  • Windows 操作系统

    • Windows 10 Enterprise 20H2 或更高版本
    • Windows 11 Enterprise 21H2 或更高版本
  • 通用 VM 映像

  • 单会话 VM 映像(不支持多会话 VM 映像。)

  • 无恢复分区

  • 默认 64 GB OS 磁盘大小

    • OS 磁盘大小会自动调整为 Windows 365 许可证的 SKU 说明中指定的大小。
  • 映像定义必须启用受信任启动作为安全类型。 在创建映像定义时配置安全类型。

    显示 Windows 365 映像要求设置的屏幕截图。

注意

  • Microsoft Dev Box 映像要求超过了 Windows 365 映像要求,并包括用于优化开发箱创建时间和性能的设置。
  • 任何不符合 Windows 365 要求的映像都不会显示在可用于创建的映像列表中。

减少预配和启动时间

当创建通用 VM 以捕获到映像时,以下问题可能会影响配置和启动时间:

  1. 使用以下三个 Sysprep 选项创建映像:/generalize /oobe /mode:vm

    • 这些选项可防止首次启动期间长时间搜索和安装驱动程序。 有关详细信息,请参阅Sysprep 命令行选项。1. 在操作系统磁盘上启用读/写缓存。
    • 要验证是否已启用缓存,请打开 Azure 门户并导航到映像。 选择“JSON 视图”,并确保 properties.storageProfile.osDisk.caching 值为 ReadWrite
  2. 在基础映像中启用嵌套虚拟化:

    • 在 UI 中,打开“打开或关闭 Windows 功能”,然后选择“虚拟机平台”。
    • 或运行以下 PowerShell 命令:Enable-WindowsOptionalFeature -FeatureName VirtualMachinePlatform -Online
  3. 使用以下命令禁用映像中的保留存储状态功能:DISM.exe /Online /Set-ReservedStorageState /State:Disabled

  4. 在创建映像期间运行defragchkdsk,然后禁用chkdiskdefrag计划的任务。

使用 Azure Compute Gallery 映像创建开发箱定义时,Windows 365 服务会验证该映像,确保它满足为开发箱预配的要求。 Microsoft Dev Box 服务将映像复制到附加网络连接中指定的区域,以便映像存在于创建开发箱所需的区域中。

若要允许服务执行这些操作,必须为库提供权限,如下所示。

将用户分配的标识添加到开发人员中心

  1. 依步骤创建用户分配的托管标识

  2. 登录 Azure 门户

  3. 在搜索框中,输入“开发箱”。 在结果列表中,选择“开发人员中心”。

  4. 打开开发人员中心。 在左侧菜单中选择“标识”。

  5. 在“用户分配”选项卡上,选择“+ 添加”

  6. 在“添加用户分配的托管标识”窗格中,选择在步骤 1 中创建的用户分配的托管标识,然后选择“添加”。

    显示用于添加用户分配的托管标识的窗格的屏幕截图。

分配角色

Microsoft Dev Box 的行为会有所不同,具体取决于附加库的方式:

  • 使用 Azure 门户将库附加到开发人员中心时,Dev Box 服务会在附加库后自动创建必要的角色分配。
  • 使用 Azure CLI 将库附加到开发人员中心时,必须先手动创建 Windows 365 服务主体和开发人员中心的托管标识角色分配,然后再附加库。

使用以下步骤手动分配每个角色。

Windows 365 服务主体

  1. 登录 Azure 门户

  2. 在搜索框中,输入“Azure Compute Gallery”。 在结果列表中,选择要附加到开发人员中心的库。

  3. 在左侧菜单中,选择“访问控制 (IAM)”。

  4. 选择“添加”>“添加角色分配”。

  5. 分配以下角色。 有关详细步骤,请参阅使用 Azure 门户分配 Azure 角色

    设置
    角色 选择“读取者”。
    将访问权限分配到 选择“用户、组或服务主体”。
    成员 搜索并选择“Windows 365”。

开发人员中心的托管标识

  1. Azure 门户中打开要附加到开发人员中心的库。 还可以搜索“Azure Compute Gallery”以查找你的库。

  2. 在左侧菜单中,选择“访问控制 (IAM)”。

  3. 选择“添加”>“添加角色分配”。

  4. 分配以下角色。 有关详细步骤,请参阅使用 Azure 门户分配 Azure 角色

    设置
    角色 选择“参与者”。
    将访问权限分配到 选择“托管标识”。
    成员 搜索并选择在将用户分配的标识添加到开发人员中心时创建的用户分配的托管标识。

可以在多个开发人员中心和计算库中使用相同的托管标识。 已添加托管标识的任何开发人员中心都拥有对已添加“所有者”角色分配的库中的映像的必要权限。

若要在开发箱定义中使用计算库中的映像,必须先通过附加库将其与开发人员中心相关联:

  1. 登录 Azure 门户

  2. 在搜索框中,输入“开发箱”。 在结果列表中,选择“开发人员中心”。

  3. 选择要将库附加到的开发人员中心。

    显示现有开发人员中心列表的屏幕截图。

  4. 在左侧菜单中,选择“Azure Compute Gallery”列出已附加到此开发人员中心的库

    显示计算库页面的屏幕截图,其中未列出库。

  5. 选择“+ 添加”选择要附加的库

  6. 在“添加 Azure 计算库”中,选择你的库。 如果有权访问多个同名库,则会在括号中显示订阅名称。

    显示用于选择库的区域的屏幕截图。

  7. 如果开发人员中心中存在名称冲突,则必须提供用于此库的唯一名称。

  8. 选择 添加

  9. 确认你的库现在显示在“Azure 计算库”页上。

    显示计算库页面的屏幕截图,其中列出了示例库。

成功添加库后,可在创建和更新开发箱定义时选择库中的映像。

可以从开发人员中心拆离库,这样它们的映像就不能再用于创建开发箱定义。

注意

不能删除开发箱定义中正在主动使用的库。 在删除此类库之前,必须删除关联的开发箱定义或更新定义以使用其他库中的图像。

  1. 登录 Azure 门户

  2. 在搜索框中,输入“开发箱”。 在结果列表中,选择“开发人员中心”。

  3. 选择要从中删除库的开发人员中心。

  4. 在左侧菜单中,选择“Azure Compute Gallery”列出已附加到此开发人员中心的库

  5. 选择要删除的库,然后选择“删除”

    显示计算库、所选库和“删除”按钮的页面的屏幕截图。

  6. 在确认对话框中选择“继续”

库与开发人员中心分离。 库及其映像没有被删除,如有必要,可以重新附加库。