Partilhar via


Referência de esquema de personalizações

Este artigo de referência fornece informações detalhadas sobre os e imagedefinition.yaml arquivos que são usados para personalizar o task.yaml Microsoft Dev Box. Os desenvolvedores podem usar esses arquivos YAML para definir tarefas para provisionamento e configuração de caixas de desenvolvimento. Os arquivos ajudam a garantir consistência e eficiência em todos os ambientes de desenvolvimento. Este artigo aborda o esquema, os atributos necessários e exemplos para ambos os tipos de arquivo, juntamente com tarefas internas como PowerShell e WinGet.

Arquivos Imagedefinition.yaml

Você pode usar um arquivo YAML da Caixa de Desenvolvimento para definir tarefas de personalização que devem ser executadas durante a criação da Caixa de Desenvolvimento. Um devbox.yaml arquivo pode estar 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: Este nome amigável para a definição de imagem está associado a este devbox.yaml ficheiro. Essa configuração controla o nome da definição de imagem que está disponível quando você cria e atualiza pools.

name: myVSDevBox

imagem

Necessário: A imagem que você deseja usar como imagem base para sua definição de imagem pode ser uma imagem de mercado:

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 seu centro de desenvolvimento, consulte Configurar a Galeria de Computação do Azure para Microsoft Dev Box.

Para obter uma lista de imagens às quais seu 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

construirPropriedades

Esta coleção de objetos é composta de propriedades de compilação que podem ser usadas para personalizar o processo de compilação 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 são acessíveis a partir da rede especificada. A conexão de rede deve ser conectada ao Centro de Desenvolvimento antes de poder ser usada para a criação de imagens.

Exemplo:

buildProperties:
    networkConnection: "my-westus3"

tarefas

Necessário: Essa coleção de objetos é composta por tarefas de personalização da Caixa de Desenvolvimento a serem executadas quando você provisiona uma caixa de desenvolvimento. As entradas específicas que são fornecidas a uma tarefa variam de acordo com a tarefa.

Exemplo:

tasks:
- name: winget
  parameters:
    package: GitHub.GitHubDesktop

Todas as tarefas suportam a timeout propriedade, que é opcional.

Exemplo:

tasks:
- name: powershell
  timeout: 1800 # in seconds
  parameters:
    command: <command>

Tarefas incorporadas

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

Esta 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 na máquina local.
    • Necessário: false
  • downloadUrl:

    • Tipo: string
    • Um URL acessível publicamente onde o arquivo YAML config está armazenado. O arquivo é baixado para o caminho que configurationFile especifica.
    • Necessário: false
  • 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 configurationFile especifica ou para um arquivo temporário se não for especificado.
    • Necessário: false
  • package:

    • Tipo: string
    • O nome do pacote a ser instalado.
    • Se um arquivo YAML config for fornecido em outros parâmetros, o nome do pacote não será necessário.
    • Necessário: false
  • version

    • Tipo: string
    • A versão do pacote a ser instalado.
    • Se um arquivo YAML config for fornecido em outros parâmetros, não há necessidade da versão do pacote.
    • Necessário: false

Tarefa interna do PowerShell

Essa tarefa interna executa um comando do PowerShell.

Parâmetros:

  • command:
    • Tipo: string
    • O comando a ser executado.
    • Necessário: true

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 escrevê-los e usam um arquivo de task.yaml metadados para descrevê-los. Os desenvolvedores usam essas tarefas para personalizar uma caixa de desenvolvimento fazendo referência a elas a partir 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 se referir a uma tarefa de devbox.yaml. O nome deve ser exclusivo no contexto do catálogo onde a tarefa existe.

A nomeação deve corresponder às restrições de recursos existentes do Azure. O nome deve ter entre 3 e 63 caracteres. 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: Este atributo descreve a tarefa.

description: This task executes a powershell command

Insumos

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 suporta estas chaves:

  • type (obrigatório): O tipo de dados de entrada para este parâmetro. Pode ser string ou int.
  • defaultValue (required): O valor padrão que este parâmetro assume.
  • required (obrigatório): A chave que especifica se esse parâmetro é opcional ou obrigatório.
  • description (obrigatório): uma descrição do que este parâmetro representa.
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute

comando

Necessário: Este comando é usado para cumprir essa tarefa. A cadeia de caracteres de comando fornecida é executada no Windows PowerShell na máquina 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 de espera

Opcional: Essa variável especifica a quantidade máxima de tempo (em minutos) para aguardar a conclusão da execução da tarefa antes que ela atinja o tempo limite. 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: Esta variável vincula-se à documentação para esta tarefa.

documentationURL: "https://link.to/documentation"

licenseURL

Opcional: Esta variável vincula-se à licença para esta tarefa.

licenseURL: "https://link.to/license"