Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo de referência fornece informações detalhadas sobre os imagedefinition.yaml arquivos usados task.yaml para personalizar o Microsoft Dev Box. Os desenvolvedores podem usar esses arquivos YAML para definir tarefas para provisionar e configurar caixas de desenvolvimento. Os arquivos ajudam a garantir a consistência e a eficiência em ambientes de desenvolvimento. Este artigo aborda o esquema, os atributos necessários e os exemplos para ambos os tipos de arquivo, juntamente com tarefas internas, como o PowerShell e o WinGet.
Arquivos Imagedefinition.yaml
Você pode usar um arquivo YAML do Dev Box para definir tarefas de personalização que devem ser executadas durante a criação do Dev Box. Um devbox.yaml arquivo pode residir no mesmo repositório que a fonte primária que a equipe de desenvolvimento usa ou o arquivo pode estar em um repositório centralizado de configurações.
Exemplo de definição de imagem YAML:
$schema: 1.0
name: project-sample-1
image: MicrosoftWindowsDesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365
tasks:
- name: "powershell"
inputs:
command:
nome
Necessário: Esse nome amigável para a definição de imagem está associado a esse devbox.yaml arquivo. Essa configuração controla o nome da definição de imagem disponível quando você cria e atualiza pools.
name: myVSDevBox
imagem
Necessário: A imagem que você deseja usar como a imagem base para sua definição de imagem pode ser uma imagem do marketplace:
image: MicrosoftWindowsDesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365
Ou pode ser uma imagem personalizada de uma instância anexada da Galeria de Computação do Azure:
image: galleryname/imagename@version
Para saber como anexar uma instância da Galeria de Computação do Azure ao centro de desenvolvimento, consulte Configurar a Galeria de Computação do Azure para Microsoft Dev Box.
Para obter uma lista de imagens às quais o centro de desenvolvimento tem acesso, use este az cli comando:
az devcenter admin image list --dev-center-name CustomizationsImagingHQ --resource-group TeamCustomizationsImagingRG --query "[].name"
Você precisa da extensão do centro az cli de desenvolvimento:
az extension add --name devcenter
Propriedades de compilação
Essa coleção de objetos é composta por propriedades de build que podem ser usadas para personalizar o processo de build para a imagem.
networkConnection
Opcional: Especifica a conexão de rede a ser usada durante a criação da imagem. Essa conexão de rede permite que tarefas de personalização acessem recursos, como contas de armazenamento ou repositórios, que podem ser acessados pela rede especificada. A conexão de rede deve ser anexada ao Centro de Desenvolvimento antes de ser usada para a criação da imagem.
Exemplo:
buildProperties:
networkConnection: "my-westus3"
tarefas
Necessário: Essa coleção de objetos é composta por tarefas de personalização do Dev Box a serem executadas quando você provisiona uma caixa de desenvolvimento. As entradas específicas fornecidas para uma tarefa variam de acordo com a tarefa.
Exemplo:
tasks:
- name: winget
parameters:
package: GitHub.GitHubDesktop
Todas as tarefas dão suporte à timeout propriedade, que é opcional.
Exemplo:
tasks:
- name: powershell
timeout: 1800 # in seconds
parameters:
command: <command>
Tarefas integradas
O PowerShell e o WinGet estão disponíveis como tarefas internas. Você pode invocá-los diretamente sem anexar um catálogo no nível do centro de desenvolvimento que define a implementação dessas tarefas.
Tarefa interna do WinGet
Essa tarefa interna aplica uma configuração do WinGet à caixa de desenvolvimento.
Parâmetros:
configurationFile:- Tipo:
string - O caminho para o arquivo YAML de configuração do WinGet. O arquivo deve estar localizado no computador local.
- Obrigatório:
false
- Tipo:
downloadUrl:- Tipo:
string - Uma URL acessível publicamente em que o arquivo YAML de configuração é armazenado. O arquivo é baixado para o caminho especificado
configurationFile. - Obrigatório:
false
- Tipo:
inlineConfigurationBase64:- Tipo:
string - Uma cadeia de caracteres codificada em Base64 do arquivo YAML de configuração do WinGet. O arquivo é decodificado para o caminho que
configurationFileespecifica ou para um arquivo temporário, se não for especificado. - Obrigatório:
false
- Tipo:
package:- Tipo:
string - O nome do pacote a ser instalado.
- Se um arquivo YAML de configuração for fornecido em outros parâmetros, o nome do pacote não será necessário.
- Obrigatório:
false
- Tipo:
version- Tipo:
string - A versão do pacote a ser instalado.
- Se um arquivo YAML de configuração for fornecido em outros parâmetros, não haverá necessidade da versão do pacote.
- Obrigatório:
false
- Tipo:
Tarefa interna do PowerShell
Essa tarefa interna executa um comando do PowerShell.
Parâmetros:
-
command:- Tipo:
string - O comando a ser executado.
- Obrigatório:
true
- Tipo:
arquivos task.yaml
As tarefas de personalização são unidades reutilizáveis de código de instalação ou configuração de ambiente. Os desenvolvedores usam scripts do PowerShell para gravá-los e usar um task.yaml arquivo de metadados para descrevê-los. Os desenvolvedores usam essas tarefas para personalizar uma caixa de desenvolvimento fazendo referência a elas de um devbox.yaml arquivo.
Ao definir tarefas de personalização, você pode identificar as tarefas que estão disponíveis para seus desenvolvedores para uso em devbox.yaml arquivos. Você pode restringir ações de alto privilégio, como a capacidade de executar qualquer comando do PowerShell.
O exemplo a seguir de uma definição de tarefa executa um comando do PowerShell em um diretório de trabalho específico:
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
Atributos
nome
Necessário: Esse identificador exclusivo é usado para fazer referência a uma tarefa de devbox.yaml. O nome deve ser exclusivo no contexto do catálogo em que a tarefa existe.
A nomenclatura deve corresponder às restrições de recursos existentes do Azure. O nome deve ter entre 3 e 63 caracteres. Ele deve começar com um caractere alfanumérico. O nome deve consistir apenas em caracteres alfanuméricos e "-", "." ou "_". O caractere "/" é reservado.
name: powershell
descrição
Opcional: Esse atributo descreve a tarefa.
description: This task executes a powershell command
entradas
Necessário: Esse atributo lista os parâmetros que essa tarefa usa como entrada de um devbox.yaml arquivo e usa enquanto executa o comando. Cada item pai representa o nome de um parâmetro e dá suporte a estas chaves:
-
type(obrigatório): o tipo de dados de entrada para esse parâmetro. Pode serstringouint. -
defaultValue(obrigatório): o valor padrão que este parâmetro usa. -
required(obrigatório): a chave que especifica se esse parâmetro é opcional ou necessário. -
description(obrigatório): uma descrição do que esse parâmetro representa.
inputs:
command:
type: string
defaultValue: ""
required: true
description: The command to execute
comando
Necessário: Esse comando é usado para cumprir essa tarefa. A cadeia de caracteres de comando fornecida é executada no Windows PowerShell no computador local.
command: ".\runcommand.ps1
Variáveis de referência em comandos
Para fazer referência a parâmetros em um comando, especifique o nome da variável em chaves duplas, por exemplo, {{parameter_name}}. Os valores dessas variáveis são interpolados antes da execução do comando.
command: ".\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}"
tempo limite
Opcional: Essa variável especifica a quantidade máxima de tempo (em minutos) para aguardar a conclusão da execução da tarefa antes do tempo limite da tarefa. O padrão é 30 minutos.
timeout: 30
autor
Opcional: Essa variável identifica o autor da tarefa para ajudar com auditorias e solução de problemas.
author: Contoso Corporation
documentationURL
Opcional: Essa variável vincula à documentação desta tarefa.
documentationURL: "https://link.to/documentation"
licenseURL
Opcional: Essa variável vincula à licença para esta tarefa.
licenseURL: "https://link.to/license"