Freigeben über


Schemareferenz für Anpassungen

Dieser Referenzartikel enthält ausführliche Informationen zu den Dateien, imagedefinition.yaml die task.yaml zum Anpassen von Microsoft Dev Box verwendet werden. Entwickler können diese YAML-Dateien verwenden, um Aufgaben für die Bereitstellung und Konfiguration von Entwicklungsfeldern zu definieren. Die Dateien tragen dazu bei, Konsistenz und Effizienz in entwicklungsübergreifenden Umgebungen sicherzustellen. In diesem Artikel werden das Schema, die erforderlichen Attribute und Beispiele für beide Dateitypen sowie integrierte Aufgaben wie PowerShell und WinGet behandelt.

Imagedefinition.yaml-Dateien

Sie können eine Dev Box YAML-Datei verwenden, um Anpassungsaufgaben zu definieren, die während der Erstellung von Dev Box ausgeführt werden sollen. Eine devbox.yaml Datei befindet sich möglicherweise im selben Repository wie die primäre Quelle, die das Entwicklerteam verwendet, oder die Datei befindet sich in einem zentralen Repository mit Konfigurationen.

Beispiel für bilddefinition YAML:

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

Name

Erforderlich: Dieser Anzeigename für die Bilddefinition ist dieser devbox.yaml Datei zugeordnet. Diese Einstellung steuert den Namen der Bilddefinition, die beim Erstellen und Aktualisieren von Pools verfügbar ist.

name: myVSDevBox

Bild

Erforderlich: Das Bild, das Sie als Basisimage für Ihre Bilddefinition verwenden möchten, kann ein Marketplace-Bild sein:

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

Oder es kann sich um ein benutzerdefiniertes Bild aus einer angefügten Azure Compute Gallery-Instanz sein:

image: galleryname/imagename@version

Informationen zum Anfügen einer Azure Compute Gallery-Instanz an Ihr Dev Center finden Sie unter Konfigurieren des Azure Compute Gallery für Microsoft Dev Box.

Um eine Liste der Bilder abzurufen, auf die Ihr Dev Center Zugriff hat, verwenden Sie den folgenden az cli Befehl:

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

Sie benötigen die Dev Center-Erweiterung az cli :

az extension add --name devcenter

buildProperties

Diese Objektsammlung besteht aus Buildeigenschaften, die zum Anpassen des Buildprozesses für das Image verwendet werden können.

networkConnection

Wahlfrei: Gibt die Netzwerkverbindung an, die während der Bilderstellung verwendet werden soll. Mit dieser Netzwerkverbindung können Anpassungsaufgaben auf Ressourcen wie Speicherkonten oder Repositorys zugreifen, auf die über das angegebene Netzwerk zugegriffen werden kann. Die Netzwerkverbindung muss an das Dev Center angefügt werden, bevor sie für die Imageerstellung verwendet werden kann.

Beispiel:

buildProperties:
    networkConnection: "my-westus3"

Tasks

Erforderlich: Diese Objektsammlung besteht aus Dev Box-Anpassungsaufgaben, die ausgeführt werden sollen, wenn Sie ein Entwicklerfeld bereitstellen. Die spezifischen Eingaben, die für einen Vorgang bereitgestellt werden, variieren je nach Vorgang.

Beispiel:

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

Alle Aufgaben unterstützen die timeout Eigenschaft, die optional ist.

Beispiel:

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

Integrierte Aufgaben

PowerShell und WinGet sind als integrierte Aufgaben verfügbar. Sie können sie direkt aufrufen, ohne einen Katalog auf Dev Center-Ebene anzufügen, der die Implementierung dieser Aufgaben definiert.

Integrierte WinGet-Aufgabe

Diese integrierte Aufgabe wendet eine WinGet-Konfiguration auf das Entwicklerfeld an.

Parameter:

  • configurationFile:

    • Typ: string
    • Der Pfad zur WinGet-Konfigurations-YAML-Datei. Die Datei muss sich auf dem lokalen Computer befinden.
    • Erforderlich: false
  • downloadUrl:

    • Typ: string
    • Eine öffentlich zugängliche URL, unter der die YAML-Konfigurationsdatei gespeichert ist. Die Datei wird in den Pfad heruntergeladen, configurationFile der angibt.
    • Erforderlich: false
  • inlineConfigurationBase64:

    • Typ: string
    • Eine base64-codierte Zeichenfolge der WinGet-Konfigurations-YAML-Datei. Die Datei wird mit dem Pfad decodiert, configurationFile der eine temporäre Datei angibt oder angibt, wenn sie nicht angegeben ist.
    • Erforderlich: false
  • package:

    • Typ: string
    • Der Name des zu installierenden Pakets.
    • Wenn eine YaML-Konfigurationsdatei unter anderen Parametern bereitgestellt wird, ist der Paketname nicht erforderlich.
    • Erforderlich: false
  • version

    • Typ: string
    • Die Version des zu installierenden Pakets.
    • Wenn eine YaML-Konfigurationsdatei unter anderen Parametern bereitgestellt wird, ist die Paketversion nicht erforderlich.
    • Erforderlich: false

Integrierte PowerShell-Aufgabe

Diese integrierte Aufgabe führt einen PowerShell-Befehl aus.

Parameter:

  • command:
    • Typ: string
    • Der auszuführende Befehl.
    • Erforderlich: true

task.yaml-Dateien

Anpassungsaufgaben sind wiederverwendbare Einheiten der Installationscode- oder Umgebungskonfiguration. Entwickler verwenden PowerShell-Skripts, um sie zu schreiben und eine task.yaml Metadatendatei zu verwenden, um sie zu beschreiben. Entwickler verwenden diese Aufgaben, um ein Entwicklerfeld anzupassen, indem sie aus einer devbox.yaml Datei referenziert werden.

Wenn Sie Anpassungsaufgaben definieren, können Sie die Aufgaben identifizieren, die Ihren Entwicklern zur Verwendung in devbox.yaml Dateien zur Verfügung stehen. Sie können Aktionen mit hohen Rechten einschränken, z. B. die Möglichkeit zum Ausführen eines beliebigen PowerShell-Befehls.

Im folgenden Beispiel einer Aufgabendefinition wird ein PowerShell-Befehl in einem bestimmten Arbeitsverzeichnis ausgeführt:

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

Attribute

Name

Erforderlich: Dieser eindeutige Bezeichner wird verwendet, um auf einen Vorgang zu verweisen.devbox.yaml Der Name muss im Kontext des Katalogs eindeutig sein, in dem die Aufgabe vorhanden ist.

Die Benennung muss mit vorhandenen Azure-Ressourceneinschränkungen übereinstimmen. Der Name muss zwischen 3 und 63 Zeichen bestehen. Er muss mit einem alphanumerischen Zeichen beginnen. Der Name darf nur alphanumerische Zeichen und "-", ".", oder "_" bestehen. Das Zeichen "/" ist reserviert.

name: powershell

Beschreibung

Wahlfrei: Dieses Attribut beschreibt die Aufgabe.

description: This task executes a powershell command

Eingaben

Erforderlich: Dieses Attribut listet die Parameter auf, die diese Aufgabe als Eingabe aus einer devbox.yaml Datei verwendet und während der Ausführung des Befehls verwendet. Jedes übergeordnete Element stellt den Namen eines Parameters dar und unterstützt die folgenden Schlüssel:

  • type (erforderlich): Der Eingabedatentyp für diesen Parameter. Kann string oder int sein.
  • defaultValue (erforderlich): Der Standardwert, den dieser Parameter verwendet.
  • required (erforderlich): Der Schlüssel, der angibt, ob dieser Parameter optional oder erforderlich ist.
  • description (erforderlich): Eine Beschreibung, was dieser Parameter darstellt.
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute

Befehl

Erforderlich: Dieser Befehl wird verwendet, um diese Aufgabe zu erfüllen. Die bereitgestellte Befehlszeichenfolge wird in Windows PowerShell auf dem lokalen Computer ausgeführt.

command: ".\runcommand.ps1

Referenzvariablen in Befehlen

Um auf Parameter in einem Befehl zu verweisen, geben Sie den Variablennamen in doppelten geschweiften Klammern an, {{parameter_name}}z. B. . Die Werte dieser Variablen werden interpoliert, bevor der Befehl ausgeführt wird.

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

Zeitüberschreitung

Wahlfrei: Diese Variable gibt die maximale Zeitdauer (in Minuten) an, bis die Ausführung der Aufgabe abgeschlossen ist, bevor das Zeitlimit für den Vorgang unterbrochen wird. Der Standardwert ist 30 Minuten.

timeout: 30

Autor

Wahlfrei: Diese Variable identifiziert den Aufgabenautor, der bei Audits und Der Problembehandlung helfen soll.

author: Contoso Corporation

documentationURL

Wahlfrei: Diese Variable ist mit der Dokumentation für diese Aufgabe verknüpft.

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

licenseURL

Wahlfrei: Diese Variable ist mit der Lizenz für diese Aufgabe verknüpft.

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