Microsoft Dev Box 的自定义设置

注释

Microsoft Dev Box 在 Build 2025 大会上亮相!

在线或亲自参加“分组讨论”会话:利用 AI 和 Dev Box 释放开发人员潜力免费在线注册!

  • 5月22日星期四:上午 8:30 - 晚上 9:30(PDT)。

如果你亲自参加构建,请注册我们的动手实验室构建最终企业级的云开发环境

  • 星期二,5 月 20 日下午 3:30 - 下午 4:45 PDT
  • 星期四,5 月 22 日上午 10:15 - 上午 11:30 PDT

让开发人员开始使用新项目或团队通常很复杂且耗时。 Microsoft Dev Box 自定义功能可帮助你简化开发人员环境的设置。 通过自定义,您可以配置带有必要应用程序、工具、存储库、代码库、软件包和构建脚本的现成代码工作站。

Dev Box 自定义可以让你:

  • 安装必要的工具和应用程序。
  • 强制实施组织安全策略。
  • 确保跨开发箱的一致性。

Microsoft Dev Box 提供了两种方式来应用自定义。

  • 团队自定义项为开发人员团队创建标准的共享配置,而不是为你的团队创建多个标准或黄金映像。

  • 用户自定义 使开发人员能够为其个人首选项创建配置。 用户自定义使开发人员能够将其配置存储在文件中,并在创建开发框时运行它,从而在所有开发框中提供一致性。

功能 / 特点 团队自定义 用户自定义
设置为开启 开发箱池 开发箱
自定义应用于 池中的所有开发箱 单个开发箱
易于共享 是的
自定义文件名 imagedefinition.yaml myfilename.yaml
来源 目录或个人存储库 上传或从个人存储库获取
支持密钥保管库机密 是的 是的

什么是自定义文件?

开发箱定制使用 YAML 格式的文件来指定在开发人员创建开发箱时从开发中心或目录中应用的任务列表。 这些任务可标识目录任务,并提供要安装的软件的名称等参数。 开发人员可以创建自己的自定义文件或使用共享自定义文件。

可以在自定义文件中使用 Azure Key Vault 中的机密来克隆专用存储库,也可使用你创作的任何需要访问令牌的自定义任务。

什么是任务

Dev Box 自定义任务是 PowerShell 脚本的封装器。 你可以使用它们来定义团队可在自定义设置中使用的可重用组件。 WinGet 和 PowerShell 任务可通过平台使用,可以通过目录添加新任务。 任务可以在登录后在系统上下文或用户上下文中运行。

  • 项目管理员定义团队自定义,可以使用自定义任务和内置任务。
  • 如果用户是管理员,或者任务是通过目录预先批准的自定义任务,则用户自定义只能使用系统任务。 标准开发框用户无法在系统上下文中运行内置的 PowerShell 和 WinGet 任务,从而阻止特权升级。

创建任务时,确定需要在系统上下文中运行哪些任务,以及登录后可在用户上下文中运行的任务。

团队自定义和用户自定义之间的差异

Dev Box 团队自定义允许开发人员团队主管和 IT 管理员为开发框池预配置自定义文件,无需开发人员手动设置。

Microsoft建议使用团队自定义来保护和标准化团队的开发框部署。 在开发人员团队之间共享常见的 YAML 文件可能效率低下,导致错误,并违反合规性策略。

除了团队自定义项之外,各个开发人员还可以在创建开发框以控制开发环境时上传自定义文件。 开发人员应仅对个人设置和应用程序使用单独的自定义设置。

自定义功能如何运作?

团队自定义和用户自定义都是基于 YAML 的文件,用于指定要在创建开发框时应用的任务列表。 选择相应的选项卡,详细了解每种自定义类型的工作原理。

团队自定义功能如何运作?

可以使用团队自定义为每个开发团队定义共享的 Dev Box 配置,而无需投资设置映像解决方案(如 Packer 或 Azure 虚拟机 (VM) 映像模板)。 团队自定义提供了一种轻量级的替代方法,让中央平台工程团队可以将 Dev Box 配置管理委派给使用它们的团队。

团队自定义项还提供了一种内置的方式来优化团队的 Dev Box 自定义项:将它们平展成自定义映像。 你可以使用相同的自定义文件,而无需管理添加的基础结构,也无需维护映像模板。

为组织配置 Dev Box 团队自定义需要仔细规划和明智的决策。 下图概述了这一过程,并突出显示了关键决策点。

显示 Dev Box 团队自定义工作流的示意图,其中包括规划、配置和部署自定义的步骤。

为团队配置 Dev Box 服务以实现自定义功能

按照以下步骤设置 Dev Box 服务以支持团队自定义:

  1. 配置开发人员中心:
    1. 启用项目级目录。
    2. 为项目管理员分配权限。
  2. 确定是否将目录与自定义可重用组件一起使用:
    • 内置(由平台提供):
      1. 使用 PowerShell 或 WinGet 内置任务(以 ~/开头)。 我们建议从内置任务开始。
    • 你自己的目录:
      1. 在 Azure Repos 或 GitHub 上托管。
      2. 添加任务。
      3. 连接到开发者中心。
  3. 创建 YAML 自定义文件:
    1. 创建名为 imagedefinition.yaml 的自定义文件。
  4. 在开发箱池中指定映像
    1. 创建或修改开发箱池,并将 imagedefinition.yaml 指定为映像定义。
  5. 选择如何使用映像定义:
    • 每次创建开发箱时在映像定义中运行任务
    • 将映像定义优化成自定义映像。
  6. 创建开发箱:
    1. 使用开发人员门户从配置的池创建开发箱。

若要了解有关团队自定义和编写映像定义的详细信息,请参阅 为 Dev Box 团队自定义编写映像定义文件。 然后,若要了解如何将映像定义优化成自定义映像,请参阅为 Dev Box 团队自定义项配置映像