Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As personalizações do Microsoft Dev Box permitem que engenheiros e programadores de plataforma pré-instalem ferramentas, clonem repositórios e configurem definições nas dev boxes usando ficheiros YAML. Esta referência descreve o esquema atual para os ficheiros YAML e as tarefas incorporadas que as personalizações do Dev Box suportam.
Use esta referência quando precisar:
- Procura as propriedades, tipos e predefinições que são válidos num ficheiro imagedefinition.yaml ou task.yaml .
- Confirme os parâmetros que as tarefas incorporadas
~/gitclone,~/powershell, e~/wingetaceitam. - Compreenda como
tasks,userTasks,parameters,variables, ebuildPropertiesfuncionam em conjunto quando o Dev Box fornece uma imagem ou aplica personalizações a um dev box.
Tipos de ficheiros de personalização
As personalizações do Dev Box usam três tipos de ficheiros YAML, cada um com um propósito e público diferentes:
| Ficheiro | Purpose | Author | Onde corre |
|---|---|---|---|
imagedefinition.yaml |
Define uma imagem reutilizável para um grupo de dev box. Lista a imagem base, parâmetros, variáveis, tarefas do sistema, tarefas do utilizador e propriedades de build a aplicar quando o Dev Box cria uma definição de imagem. | Engenheiro de plataforma ou líder de equipa | Armazenado num catálogo anexo a um projeto; aplicado a todas as dev boxes criadas a partir de um pool que referenciam a definição da imagem. |
task.yaml |
Define uma tarefa de personalização reutilizável e parametrizada que é adicionada a um catálogo. Permite aos administradores envolver a lógica PowerShell com metadados, validação de parâmetros, documentação e definições de execução. | Engenheiro de plataforma | Armazenado num catálogo associado a um centro de desenvolvimento; chamados pelo nome a partir dos imagedefinition.yaml ficheiros OR devbox.yaml . |
devbox.yaml |
Ficheiro de personalização de utilizador pessoal carregado durante a criação da dev box. Aplica-se apenas à caixa de desenvolvimento a que está ligado. | Desenvolvedor individual | Carregado a partir do disco local ou referenciado a partir de um repositório no portal do programador. |
As tarefas incorporadas ~/gitclone, ~/powershell, e ~/winget estão disponíveis em qualquer centro de desenvolvimento sem necessidade de anexar um catálogo. Para adicionar tarefas personalizadas para além dessas incorporadas, defina-as em task.yaml ficheiros num catálogo e chame-as pelo nome a partir da definição de imagem ou ficheiro de personalização do utilizador. Para mais informações, consulte as personalizações do Microsoft Dev Box.
Arquivos Imagedefinition.yaml
Use imagedefinition.yaml para definir a imagem, parâmetros, variáveis e tarefas de personalização que o Dev Box aplica ao criar uma definição de imagem.
Ficheiro imagedefinition.yaml de exemplo
$schema: "1.0"
name: example-image-definition
description: Install core tools and clone the project repository.
image: microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2
parameters:
repositoryBranch:
type: string
default: main
description: Branch to clone during setup.
variables:
workspaceRoot:
type: string
value: C:\Workspaces
description: Root directory for repositories.
tasks:
- name: ~/winget
parameters:
package: Git.Git
- name: ~/gitclone
parameters:
repositoryUrl: https://github.com/example-org/example-repo.git
directory: C:\Workspaces
branch: "{{repositoryBranch}}"
userTasks:
- name: ~/powershell
parameters:
command: code C:\Workspaces\example-repo
buildProperties:
networkConnection: corp-westus3
Propriedades de Imagedefinition.yaml
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| $schema | String ou número | Especifica a versão do esquema para o ficheiro. | |
| name | ✅ | cadeia (de caracteres) | Define o nome amigável para a definição da imagem. |
| description | cadeia (de caracteres) | Descreve a definição da imagem. | |
| image | ✅ | cadeia (de caracteres) | Identifica a imagem base a usar para a imagem da dev box. |
| parameters | objecto | Define parâmetros de entrada que as tarefas podem referenciar na definição da imagem. | |
| variables | objecto | Define valores reutilizáveis para a definição da imagem. | |
| Tarefas | array de objetos de tarefa | Lista tarefas de personalização do contexto do sistema a executar durante o provisionamento. | |
| userTasks | array de objetos de tarefa | Lista tarefas de personalização do contexto do utilizador para executar após iniciar sessão. | |
| buildPropriedades | objecto | Define definições específicas de build para criação de imagens. |
$schema
(fio ou número)
Especifica a versão do esquema para o ficheiro. Exemplos atuais utilizam 1.0.
$schema: "1.0"
name
(string, obrigatório, 3-63 caracteres)
Especifica o nome amigável mostrado quando selecionas uma definição de imagem. Essa configuração controla o nome da definição de imagem que está disponível quando você cria e atualiza pools. O nome não pode conter /, ", [, ]:, +<>|, =*&?,@;espaço em branco, nem começar por _ ou .-
name: example-image-definition
description
(corda)
Descreve o propósito da definição da imagem.
description: Install core tools and clone the project repository.
image
(corda, necessária)
Especifica a imagem base a usar para a imagem da dev box. A imagem pode ser uma imagem de marketplace ou uma imagem personalizada de uma galeria de computação do Azure anexada no formato gallery-name/image-name@version.
Examples:
image: microsoftwindowsdesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365
image: my-gallery/my-image@0.0.1
Para anexar uma Galeria de Computação do Azure, consulte Configurar a Galeria de Computação do Azure para Microsoft Dev Box.
Para obter uma lista de imagens a que o seu centro de desenvolvimento pode aceder, use o CLI do Azure:
az devcenter admin image list --dev-center-name CustomizationsImagingHQ --resource-group TeamCustomizationsImagingRG --query "[].name"
Se necessário, instale primeiro a extensão Dev Center CLI do Azure:
az extension add --name devcenter
parameters
(objeto)
Define parâmetros de entrada nomeados que podes referenciar em tarefas usando {{parameterName}} sintaxe.
parameters:
repositoryBranch:
type: string
default: main
description: Branch to clone during setup.
Propriedades do objeto paramétrico
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| type | ✅ | cadeia (de caracteres) | Especifica o tipo de dado do parâmetro. |
| permitido | matriz de strings | Restringe o parâmetro a uma lista fixa de valores de cadeia. | |
| default | ✅ | string, boolean ou número | Define o valor padrão do parâmetro. |
| description | cadeia (de caracteres) | Descreve o parâmetro. | |
| validaçãoRegex | cadeia (de caracteres) | Valida os valores das cadeias contra uma expressão regular. | |
| minLength | número inteiro | Define o comprimento mínimo para os valores das cordas. | |
| comprimento máximo | número inteiro | Define o comprimento máximo para os valores das cordas. |
type
(string, obrigatório, valores permitidos: string, boolean, number)
Especifica o tipo de dado do parâmetro.
allowed
(conjunto de cordas)
Restringe o parâmetro a um conjunto fixo de valores de cadeia permitidos.
default
(fio, booleano ou número, necessário)
Define o valor padrão do parâmetro.
description
(corda)
Descreve o parâmetro para autores e ferramentas.
validationRegex
(corda)
Define uma expressão regular que os valores da cadeia devem corresponder.
minLength
(inteiro)
Define o comprimento mínimo para os valores das cordas.
maxLength
(inteiro)
Define o comprimento máximo para os valores das cordas.
variables
(objeto)
Define variáveis nomeadas que podes reutilizar na definição da imagem.
variables:
workspaceRoot:
type: string
value: C:\Workspaces
description: Root directory for repositories.
Propriedades dos objetos variáveis
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| type | ✅ | cadeia (de caracteres) | Especifica o tipo de dado variável. |
| valor | ✅ | string, boolean ou número | Define o valor da variável. |
| description | cadeia (de caracteres) | Descreve a variável. |
type
(string, obrigatório, valores permitidos: string, boolean, number)
Especifica o tipo de dado variável.
value
(fio, booleano ou número, necessário)
Define o valor da variável.
description
(corda)
Descreve a variável para autores e ferramentas.
tasks
(array de objetos de tarefa)
Lista tarefas de personalização para executar no contexto do sistema durante o provisionamento. Os valores específicos de entrada que forneces variam consoante a tarefa. Cada entrada de tarefa deve incluir name e pode também definir displayName, description, parameters, e timeout.
tasks:
- name: ~/winget
parameters:
package: Git.Git
- name: ~/gitclone
timeout: 1800
parameters:
repositoryUrl: https://github.com/example-org/example-repo.git
directory: C:\Workspaces
A timeout propriedade é opcional e é medida em segundos quando a usa em imagedefinition.yaml.
tasks:
- name: ~/powershell
timeout: 1800
parameters:
command: <command>
Propriedades de entrada de tarefas
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| name | ✅ | cadeia (de caracteres) | Identifica a tarefa a invocar. |
| Displayname | cadeia (de caracteres) | Fornece texto curto da interface para a tarefa. | |
| description | cadeia (de caracteres) | Descreve o que a tarefa faz. | |
| parameters | objecto | Fornece valores de entrada para a tarefa. | |
| tempo de espera | número inteiro | Anula o tempo de execução da tarefa em segundos. |
name
(corda, necessária)
Identifica a tarefa a executar. Use o ~/ prefixo para tarefas incorporadas, como ~/winget, ~/powershell, e ~/gitclone.
displayName
(corda)
Fornece texto curto para as superfícies da interface.
description
(corda)
Descreve o que a tarefa faz na definição da imagem.
parameters
(objeto)
Define os valores de entrada passados para a tarefa. Os nomes dos parâmetros e os tipos de valor dependem da tarefa selecionada.
As definições dos parâmetros seguem o mesmo esquema descrito para task.yaml as propriedades dos parâmetros. Para detalhes, veja type, allowed, default, validationRegexdescription, , minLength, maxLength, , e required.
timeout
(inteiro)
Anula o tempo de execução da tarefa em segundos.
userTasks
(array de objetos de tarefa)
Lista tarefas de personalização para executar no contexto do utilizador após iniciar sessão.
userTasks usa o mesmo esquema de entrada de tarefas que tasks.
userTasks:
- name: ~/powershell
parameters:
command: code C:\Workspaces\example-repo
buildProperties
(objeto)
Define definições específicas de build que personalizam o processo de construção da imagem.
buildProperties:
networkConnection: corp-westus3
Propriedades de construção Propriedades do objeto
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| redeConexão | cadeia (de caracteres) | Seleciona a ligação de rede a usar para builds de imagens. |
networkConnection
(corda)
Especifica a ligação de rede usada durante a criação da imagem. Use esta configuração quando as tarefas de construção precisarem de acesso a recursos como repositórios privados ou contas de armazenamento que só sejam acedidos através de uma ligação de rede específica. A ligação de rede tem de estar ligada ao centro de desenvolvimento antes de a poderes usar para criar imagens.
buildProperties:
networkConnection: my-westus3
Tarefas incorporadas
Use tarefas integradas quando precisar de ações de personalização comuns sem anexar um catálogo. Use o ~/ prefixo para chamar uma tarefa incorporada, por exemplo ~/winget, ~/powershell, ou ~/gitclone.
Tarefa incorporada no GitClone
Usa a tarefa incorporada do GitClone para clonar um repositório na dev box.
Exemplo:
tasks:
- name: ~/gitclone
parameters:
repositoryUrl: https://github.com/microsoft/calculator
directory: C:\Workspaces
branch: main
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| repositoryUrl | ✅ | cadeia (de caracteres) | Especifica a URL do repositório a clonar. |
| Diretório | cadeia (de caracteres) | Define o diretório sob o qual o repositório é clonado. | |
| sucursal | cadeia (de caracteres) | Seleciona um ramo para clonar. | |
| Pat | cadeia (de caracteres) | Fornece um token de acesso pessoal para operações de clonagem autenticadas. |
repositoryUrl
(corda, necessária)
Especifica a URL do repositório a clonar.
directory
(cadeia, padrão: C:\Workspaces)
Define o diretório sob o qual o repositório é clonado.
branch
(corda)
Seleciona um ramo para clonar.
pat
(corda)
Fornece um token de acesso pessoal para operações de clonagem autenticadas. Quando pat não é fornecido, o clone é colocado na fila para o primeiro login do utilizador. Quando forneces pat, a tarefa pode clonar durante o provisionamento. Use uma referência secreta do Key Vault em vez de um valor secreto bruto.
A tarefa incorporada do GitClone também instala o PowerShell 7, Git e Git LFS durante a execução.
Tarefa interna do PowerShell
Use a tarefa integrada do PowerShell para executar um comando ou script.
Exemplo:
tasks:
- name: ~/powershell
parameters:
command: Write-Host "Hello from Dev Box"
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| command | cadeia (de caracteres) | Executa um comando inline. | |
| Diretório de trabalho | cadeia (de caracteres) | Define o diretório de trabalho para o comando ou script. | |
| guião | cadeia (de caracteres) | Executa um script PowerShell local ou remoto. | |
| scriptArgs | cadeia (de caracteres) | Fornece argumentos para o guião. | |
| scriptExecutionPolicy | cadeia (de caracteres) | Define a política de execução para o script. |
command
(corda)
Executa um comando inline. Se fornecer command, os script, scriptArgs, e scriptExecutionPolicy os parâmetros são ignorados.
workingDirectory
(corda)
Define o diretório de trabalho para o comando ou script.
script
(corda)
Especifica o caminho para um script PowerShell local ou remoto a ser executado. Este parâmetro é ignorado quando command é fornecido.
scriptArgs
(corda)
Fornece argumentos para o guião. Este parâmetro é ignorado quando command é fornecido.
scriptExecutionPolicy
(string, por defeito: Bypass)
Define a política de execução para o script. Este parâmetro é ignorado quando command é fornecido.
Tarefa interna do WinGet
Use a tarefa integrada do WinGet para instalar um pacote diretamente ou aplicar um ficheiro de configuração do WinGet.
Importante
A tarefa incorporada do WinGet não é igual ao winget executável. A tarefa incorporada utiliza o cmdlet PowerShell WinGet.
Exemplo:
tasks:
- name: ~/winget
parameters:
package: GitHub.GitHubDesktop
version: 3.4.16
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| Ficheiro de configuração | cadeia (de caracteres) | Aponta para um ficheiro de configuração local do WinGet. | |
| downloadUrl | cadeia (de caracteres) | Descarrega um ficheiro de configuração a partir de uma URL pública. | |
| inlineConfigurationBase64 | cadeia (de caracteres) | Fornece um ficheiro de configuração WinGet codificado em Base64. | |
| package | cadeia (de caracteres) | Instala um pacote diretamente pelo nome. | |
| Versão | cadeia (de caracteres) | Instala uma versão específica do pacote. |
configurationFile
(corda)
Aponta para um ficheiro YAML de configuração WinGet na máquina local.
downloadUrl
(corda)
Especifica uma URL pública para um ficheiro YAML de configuração do WinGet. O ficheiro é descarregado para o caminho em configurationFile.
inlineConfigurationBase64
(corda)
Fornece um ficheiro YAML de configuração WinGet codificado em Base64. A tarefa decodifica-o para configurationFile, ou para um ficheiro temporário se configurationFile não estiver definido.
package
(corda)
Instala um pacote diretamente pelo nome. Se usares uma fonte de ficheiro de configuração, não precisas de fornecer package.
version
(corda)
Instala uma versão específica do pacote. Se usares uma fonte de ficheiro de configuração, não precisas de fornecer version.
arquivos task.yaml
Use task.yaml para definir uma tarefa de personalização reutilizável num catálogo. Uma definição de tarefa descreve o comando, metadados, parâmetros, documentação e definições de execução da tarefa.
Quando defines tarefas de personalização, identificas as tarefas que estão disponíveis para os programadores usarem em imagedefinition.yaml ficheiros de OU devbox.yaml . Pode usar definições de tarefas para restringir ações de alto privilégio, como a possibilidade de executar comandos PowerShell arbitrários.
Ficheiro task.yaml de exemplo
$schema: "1.0"
name: install-vsix-extension
description: Install a Visual Studio extension from a VSIX package.
author: Contoso Corporation
command: .\install-extension.ps1 -VsixPath {{vsixPath}}
documentationURL: https://contoso.example/devbox/install-vsix-extension
keywords:
- visual-studio
- extension
parameters:
vsixPath:
type: string
required: true
description: Path to the VSIX package.
timeout: 30
rebootRequired: false
documentation:
notes: Use a path that is available during task execution.
examples:
- name: install-vsix-extension
parameters:
vsixPath: .\extensions\contoso.vsix
O exemplo seguinte mostra uma definição de tarefa que executa um comando PowerShell num diretório de trabalho específico:
$schema: "1.0"
name: powershell
description: Execute a PowerShell command.
author: Microsoft Corporation
command: .\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}
parameters:
command:
type: string
default: ""
required: true
description: The command to execute.
workingDirectory:
type: string
default: ""
required: false
description: The working directory in which to execute the command.
Propriedades do Task.yaml
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| $schema | ✅ | cadeia (de caracteres) | Especifica a versão do esquema para o ficheiro de tarefa. |
| name | ✅ | cadeia (de caracteres) | Define o identificador da tarefa. |
| command | ✅ | cadeia (de caracteres) | Fornece o comando PowerShell que implementa a tarefa. |
| description | cadeia (de caracteres) | Descreve a tarefa. | |
| autor | cadeia (de caracteres) | Identifica o autor da tarefa. | |
| issueNotificaçãoEmail | cadeia (de caracteres) | Fornece um email de contacto para questões relacionadas com tarefas. | |
| Documentation URL | cadeia (de caracteres) | Ligações para documentação de tarefas. | |
| licenseURL | cadeia (de caracteres) | Ligações para a licença da tarefa. | |
| palavras-chave | matriz de strings | Listas de palavras-chave de pesquisa para a tarefa. | |
| parameters | objecto | Define as entradas que a tarefa aceita. | |
| tempo de espera | número inteiro | Define o timeout padrão em minutos. | |
| documentação | objecto | Adiciona notas e exemplos de invocação de tarefas para consumidores. | |
| rebootRequired | Booleano | Indica se a tarefa requer um reinício após a execução. |
$schema
(corda, necessária)
Especifica a versão do esquema para a definição da tarefa. Exemplos atuais utilizam 1.0.
name
(corda, necessária)
Define o identificador usado para referenciar a tarefa de imagedefinition.yaml ou devbox.yaml arquivos. O nome deve ser exclusivo no contexto do catálogo onde a tarefa existe.
Use as mesmas restrições de nomeação que outros artefactos de personalização do Dev Box. O nome deve ter entre 3 e 63 caracteres, começar com um carácter alfanumérico e conter apenas caracteres alfanuméricos, -, ., ou _. O / personagem é reservado.
name: install-vsix-extension
command
(corda, necessária)
Especifica o comando PowerShell que implementa a tarefa. O comando corre no PowerShell do Windows na máquina local. Use {{parameterName}} a sintaxe para referenciar valores de parâmetros na cadeia de comandos.
command: .\install-extension.ps1 -VsixPath {{vsixPath}}
Por exemplo:
command: .\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}
description
(corda)
Descreve o propósito da tarefa.
description: This task executes a PowerShell command.
author
(corda)
Identifica o autor da tarefa para auditorias e resolução de problemas.
author: Contoso Corporation
issueNotificationEmail
(corda)
Fornece um endereço de email que os utilizadores podem contactar caso tenham problemas com a tarefa. A funcionalidade do produto não consome esse valor.
documentationURL
(corda)
Ligações para a documentação da tarefa.
documentationURL: https://link.to/documentation
licenseURL
(corda)
Ligações para a licença da tarefa.
licenseURL: https://link.to/license
keywords
(conjunto de cordas)
Lista palavras-chave que ajudam os consumidores a encontrar a tarefa.
parameters
(objeto)
Define parâmetros de entrada nomeados para a tarefa. Cada item filho representa um nome de parâmetro e pode definir o tipo de parâmetro permitido, valores permitidos, valor padrão, descrição, regras de validação, limites de comprimento e se o parâmetro é necessário.
parameters:
vsixPath:
type: string
required: true
description: Path to the VSIX package.
Propriedades de definição de parâmetros
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| type | ✅ | cadeia (de caracteres) | Especifica o tipo de dados de entrada. |
| permitido | matriz de strings | Restringe a entrada a uma lista fixa de valores de cadeia. | |
| default | string, boolean ou número | Define o valor padrão para a entrada. | |
| description | cadeia (de caracteres) | Descreve a entrada. | |
| validaçãoRegex | cadeia (de caracteres) | Valida os valores das cadeias contra uma expressão regular. | |
| minLength | número inteiro | Define o comprimento mínimo para os valores das cordas. | |
| comprimento máximo | número inteiro | Define o comprimento máximo para os valores das cordas. | |
| required | Booleano | Indica se a entrada deve ser fornecida. |
type
(string, obrigatório, valores permitidos: string, boolean, number)
Especifica o tipo de dados de entrada.
allowed
(conjunto de cordas)
Restringe a entrada a um conjunto fixo de valores de cadeia permitidos.
default
(corda, booleano ou número)
Define o valor padrão para a entrada.
description
(corda)
Descreve a entrada.
validationRegex
(corda)
Define uma expressão regular que os valores da cadeia devem corresponder.
minLength
(inteiro)
Define o comprimento mínimo para os valores das cordas.
maxLength
(inteiro)
Define o comprimento máximo para os valores das cordas.
required
(booleano)
Indica se a entrada deve ser fornecida. Se omitido, o padrão é false.
timeout
(inteiro, padrão: 30)
Define o timeout padrão da tarefa em minutos. Se não especificar um valor, o valor padrão é 30 minutos.
timeout: 30
documentation
(objeto)
Fornece notas e exemplos de invocação que os consumidores de tarefas podem usar quando adicionam a tarefa a uma definição de imagem.
Propriedades do objeto de documentação
| Property | Obrigatório | Tipo | Description |
|---|---|---|---|
| Notas | cadeia (de caracteres) | Fornece orientação aos consumidores da tarefa. | |
| Exemplos | array de objetos de tarefa | Mostra como invocar a tarefa a partir de um ficheiro YAML. |
notes
(corda)
Acrescenta orientações ou ressalvas para os consumidores da tarefa.
examples
(array de objetos de tarefa)
Mostra exemplos de invocações de tarefas usando o mesmo esquema que as entradas de tarefa em imagedefinition.yaml.
rebootRequired
(booleano, padrão: falso)
Indica se a tarefa requer um reinício após a execução.
Conteúdo relacionado
-
Configura as personalizações da equipa - Cria
imagedefinition.yamlficheiros e aplica-os a um grupo de dev boxs. -
Configura um ficheiro de personalização de utilizador para a tua dev box - Cria e carrega um ficheiro pessoal
devbox.yaml. -
Configurar tarefas para personalizações do Dev Box - Criar
task.yamlficheiros de autor e publicá-los através de um catálogo. - Conecte-se a recursos Azure ou clone repositórios privados