你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本参考文章提供有关 imagedefinition.yaml
用于自定义Microsoft Dev Box 的文件的详细信息 task.yaml
。 开发人员可以使用这些 YAML 文件来定义用于预配和配置开发框的任务。 这些文件有助于确保跨开发环境的一致性和效率。 本文介绍两种文件类型的架构、必需属性和示例,以及 PowerShell 和 WinGet 等内置任务。
Imagedefinition.yaml 文件
可以使用 Dev Box YAML 文件定义在创建 Dev Box 期间应运行的自定义任务。
devbox.yaml
文件可能与开发团队使用的主源位于同一存储库中,或者该文件可能位于配置的集中式存储库中。
示例映像定义 YAML:
$schema: 1.0
name: project-sample-1
image: MicrosoftWindowsDesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365
tasks:
- name: "powershell"
inputs:
command:
姓名
必填: 映像定义的此友好名称与此 devbox.yaml
文件相关联。 此设置控制创建和更新池时可用的映像定义的名称。
name: myVSDevBox
图像
必填: 要用作映像定义基础映像的映像可以是市场映像:
image: MicrosoftWindowsDesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365
或者,它可以是附加的 Azure 计算库实例的自定义映像:
image: galleryname/imagename@version
若要了解如何将 Azure 计算库实例附加到开发人员中心,请参阅 为 Microsoft Dev Box 配置 Azure 计算库。
若要获取开发人员中心有权访问的映像列表,请使用 az cli
以下命令:
az devcenter admin image list --dev-center-name CustomizationsImagingHQ --resource-group TeamCustomizationsImagingRG --query "[].name"
需要开发人员中心 az cli
扩展:
az extension add --name devcenter
任务
必填: 此对象集合由预配开发框时要运行的 Dev Box 自定义任务组成。 提供给任务的特定输入因任务而异。
示例:
tasks:
- name: winget
parameters:
package: GitHub.GitHubDesktop
所有任务都支持可选 timeout
属性。
示例:
tasks:
- name: powershell
timeout: 1800 # in seconds
parameters:
command: <command>
内置任务
PowerShell 和 WinGet 可用作内置任务。 无需在开发人员中心级别附加定义这些任务的实现的目录,即可直接调用它们。
WinGet 内置任务
此内置任务将 WinGet 配置应用于开发框。
参数:
configurationFile
:- 类型:
string
- WinGet 配置 YAML 文件的路径。 该文件必须位于本地计算机中。
- 必需:
false
- 类型:
downloadUrl
:- 类型:
string
- 一个可公开访问的 URL,其中存储了配置 YAML 文件。 文件将下载到指定路径
configurationFile
。 - 必需:
false
- 类型:
inlineConfigurationBase64
:- 类型:
string
- WinGet 配置 YAML 文件的 Base64 编码字符串。 该文件被解码为指定或临时文件(如果未指定)的路径
configurationFile
。 - 必需:
false
- 类型:
package
:- 类型:
string
- 要安装的包的名称。
- 如果在其他参数下提供了配置 YAML 文件,则不需要包名称。
- 必需:
false
- 类型:
version
- 类型:
string
- 要安装的包的版本。
- 如果配置 YAML 文件在其他参数下提供,则无需包版本。
- 必需:
false
- 类型:
PowerShell 内置任务
此内置任务运行 PowerShell 命令。
参数:
-
command
:- 类型:
string
- 要执行的命令
- 必需:
true
- 类型:
task.yaml 文件
自定义任务是可重用的安装代码或环境配置单元。 开发人员使用 PowerShell 脚本来编写脚本,并使用 task.yaml
元数据文件来描述它们。 开发人员使用这些任务通过引用 devbox.yaml
文件来自定义开发框。
定义自定义任务时,可以标识可供开发人员用于 devbox.yaml
文件的任务。 可以限制高特权作,例如运行任何 PowerShell 命令的功能。
任务定义的以下示例在特定工作目录中运行 PowerShell 命令:
name: powershell
description: Execute a powershell command
author: Microsoft Corporation
command: ".\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}"
inputs:
command:
type: string
defaultValue: ""
required: true
description: The command to execute
workingDirectory:
type: string
defaultValue: ""
required: false
description: The working directory to execute the command in
特性
姓名
必填:此唯一标识符用于引用任务。devbox.yaml
该名称在任务所在的目录上下文中必须是唯一的。
命名必须与现有的 Azure 资源约束匹配。 名称必须介于 3 到 63 个字符之间。 它必须以字母数字字符开头。 名称必须仅包含字母数字字符和“-”、“.”或“_”。 保留“/”字符。
name: powershell
描述
自选: 此属性描述任务。
description: This task executes a powershell command
输入
必填: 此属性列出此任务作为文件中的输入 devbox.yaml
的参数,并在运行命令时使用该参数。 每个父项表示参数的名称,并支持以下键:
-
type
(必需):此参数的输入数据类型。 可以是string
或int
。 -
defaultValue
(必需):此参数采用的默认值。 -
required
(必需):指定此参数是可选的还是必需的键。 -
description
(必需):此参数所表示的内容的说明。
inputs:
command:
type: string
defaultValue: ""
required: true
description: The command to execute
指令
必填: 此命令用于完成此任务。 提供的命令字符串在本地计算机上的 Windows PowerShell 中运行。
command: ".\runcommand.ps1
在命令中引用变量
若要在命令中引用参数,请在双大括号中指定变量名称, {{parameter_name}}
例如。 这些变量的值在命令运行之前内插。
command: ".\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}"
超时
自选: 此变量指定在任务超时之前等待任务执行完成的最长时间(以分钟为单位)。默认值为 30 分钟。
timeout: 30
作者
自选: 此变量标识任务作者,以帮助进行审核和故障排除。
author: Contoso Corporation
documentationURL
自选: 此变量链接到此任务的文档。
documentationURL: "https://link.to/documentation"
licenseURL
自选: 此变量链接到此任务的许可证。
licenseURL: "https://link.to/license"