Condividi tramite


Informazioni di riferimento sullo schema delle personalizzazioni

Questo articolo di riferimento fornisce informazioni dettagliate sui imagedefinition.yaml file e task.yaml usati per personalizzare Microsoft Dev Box. Gli sviluppatori possono usare questi file YAML per definire le attività per il provisioning e la configurazione di finestre di sviluppo. I file consentono di garantire coerenza ed efficienza in ambienti di sviluppo. Questo articolo illustra lo schema, gli attributi obbligatori ed esempi per entrambi i tipi di file, insieme alle attività predefinite come PowerShell e WinGet.

File Imagedefinition.yaml

È possibile usare un file YAML di Dev Box per definire le attività di personalizzazione che devono essere eseguite durante la creazione di Dev Box. Un devbox.yaml file potrebbe trovarsi nello stesso repository dell'origine primaria usata dal team di sviluppo oppure il file potrebbe trovarsi in un repository centralizzato di configurazioni.

Definizione di immagine di esempio YAML:

$schema: 1.0
name: project-sample-1
image: MicrosoftWindowsDesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365
tasks:
- name: "powershell"
  inputs:
    command:

nome

Obbligatorio: Questo nome descrittivo per la definizione dell'immagine è associato a questo devbox.yaml file. Questa impostazione controlla il nome della definizione dell'immagine disponibile quando si creano e aggiornano i pool.

name: myVSDevBox

immagine

Obbligatorio: L'immagine che si vuole usare come immagine di base per la definizione dell'immagine può essere un'immagine del marketplace:

image: MicrosoftWindowsDesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365

In alternativa, può essere un'immagine personalizzata da un'istanza di Azure Compute Gallery collegata:

image: galleryname/imagename@version

Per informazioni su come collegare un'istanza di Azure Compute Gallery al dev center, vedere Configurare La raccolta di calcolo di Azure per Microsoft Dev Box.

Per ottenere un elenco di immagini a cui ha accesso il dev center, usare questo az cli comando:

az devcenter admin image list --dev-center-name CustomizationsImagingHQ --resource-group TeamCustomizationsImagingRG --query "[].name"

È necessaria l'estensione dev Center az cli :

az extension add --name devcenter

buildProperties

Questa raccolta di oggetti è costituita da proprietà di compilazione che possono essere usate per personalizzare il processo di compilazione per l'immagine.

networkConnection

Opzionale: Specifica la connessione di rete da utilizzare durante la creazione dell'immagine. Questa connessione di rete consente alle attività di personalizzazione di accedere alle risorse, ad esempio gli account di archiviazione o i repository, accessibili dalla rete specificata. La connessione di rete deve essere collegata a Dev Center prima che possa essere usata per la creazione di immagini.

Esempio:

buildProperties:
    networkConnection: "my-westus3"

Attività

Obbligatorio: Questa raccolta di oggetti è costituita da attività di personalizzazione di Dev Box da eseguire quando si effettua il provisioning di una casella di sviluppo. Gli input specifici forniti a un'attività variano in base all'attività.

Esempio:

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

Tutte le attività supportano la timeout proprietà , che è facoltativa.

Esempio:

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

Attività integrate

PowerShell e WinGet sono disponibili come attività predefinite. È possibile richiamarli direttamente senza collegare un catalogo a livello di dev center che definisce l'implementazione di queste attività.

Attività predefinita WinGet

Questa attività predefinita applica una configurazione WinGet alla casella di sviluppo.

Parametri:

  • configurationFile:

    • Tipo: string
    • Percorso del file YAML di configurazione WinGet. Il file deve trovarsi nel computer locale.
    • Obbligatorio: false
  • downloadUrl:

    • Tipo: string
    • URL accessibile pubblicamente in cui è archiviato il file YAML di configurazione. Il file viene scaricato nel percorso specificato configurationFile .
    • Obbligatorio: false
  • inlineConfigurationBase64:

    • Tipo: string
    • Stringa con codifica Base64 del file YAML di configurazione WinGet. Il file viene decodificato nel percorso che configurationFile specifica o in un file temporaneo, se non è specificato.
    • Obbligatorio: false
  • package:

    • Tipo: string
    • Nome del pacchetto da installare.
    • Se viene fornito un file YAML di configurazione con altri parametri, il nome del pacchetto non è necessario.
    • Obbligatorio: false
  • version

    • Tipo: string
    • Versione del pacchetto da installare.
    • Se un file YAML di configurazione viene fornito con altri parametri, non è necessario usare la versione del pacchetto.
    • Obbligatorio: false

Attività predefinita di PowerShell

Questa attività predefinita esegue un comando di PowerShell.

Parametri:

  • command:
    • Tipo: string
    • Comando da eseguire.
    • Obbligatorio: true

File task.yaml

Le attività di personalizzazione sono unità riutilizzabili di codice di installazione o configurazione dell'ambiente. Gli sviluppatori usano script di PowerShell per scriverli e usare un task.yaml file di metadati per descriverli. Gli sviluppatori usano queste attività per personalizzare una casella di sviluppo facendo riferimento a essi da un devbox.yaml file.

Quando si definiscono le attività di personalizzazione, è possibile identificare le attività disponibili per gli sviluppatori per l'uso nei devbox.yaml file. È possibile limitare le azioni con privilegi elevati, ad esempio la possibilità di eseguire qualsiasi comando di PowerShell.

L'esempio seguente di definizione di un'attività esegue un comando di PowerShell in una directory di lavoro specifica:

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

Attributi

nome

Obbligatorio: Questo identificatore univoco viene usato per fare riferimento a un'attività da devbox.yaml. Il nome deve essere univoco nel contesto del catalogo in cui è presente l'attività.

La denominazione deve corrispondere ai vincoli esistenti delle risorse di Azure. Il nome deve essere compreso tra 3 e 63 caratteri. Deve iniziare con un carattere alfanumerico. Il nome deve essere costituito solo da caratteri alfanumerici e "-", "." o "_". Il carattere "/" è riservato.

name: powershell

descrizione

Opzionale: Questo attributo descrive l'attività.

description: This task executes a powershell command

Ingressi

Obbligatorio: Questo attributo elenca i parametri che questa attività accetta come input da un devbox.yaml file e usa durante l'esecuzione del comando. Ogni elemento padre rappresenta il nome di un parametro e supporta queste chiavi:

  • type (obbligatorio): tipo di dati di input per questo parametro. Può essere string o int.
  • defaultValue (obbligatorio): il valore predefinito accetta questo parametro.
  • required (obbligatorio): chiave che specifica se questo parametro è facoltativo o obbligatorio.
  • description (obbligatorio): descrizione di ciò che questo parametro rappresenta.
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute

comando

Obbligatorio: Questo comando viene usato per soddisfare questa attività. La stringa di comando fornita viene eseguita in Windows PowerShell nel computer locale.

command: ".\runcommand.ps1

Variabili di riferimento nei comandi

Per fare riferimento ai parametri in un comando, specificare il nome della variabile tra parentesi graffe doppie, {{parameter_name}}ad esempio . I valori di queste variabili vengono interpolati prima dell'esecuzione del comando.

command: ".\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}"

Timeout

Opzionale: Questa variabile specifica la quantità massima di tempo (in minuti) di attesa del completamento dell'esecuzione dell'attività prima del timeout dell'attività. Il valore predefinito è 30 minuti.

timeout: 30

autore

Opzionale: Questa variabile identifica l'autore dell'attività per facilitare i controlli e la risoluzione dei problemi.

author: Contoso Corporation

documentationURL

Opzionale: Questa variabile è collegata alla documentazione per questa attività.

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

licenseURL

Opzionale: Questa variabile è collegata alla licenza per questa attività.

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