Udostępnij przez


Dokumentacja schematu dostosowań

Ten artykuł referencyjny zawiera szczegółowe informacje o imagedefinition.yaml plikach i task.yaml używanych do dostosowywania usługi Microsoft Dev Box. Deweloperzy mogą używać tych plików YAML do definiowania zadań związanych z aprowizowaniem i konfigurowaniem pól deweloperskich. Pliki pomagają zapewnić spójność i wydajność w środowiskach deweloperskich. W tym artykule opisano schemat, wymagane atrybuty i przykłady dla obu typów plików oraz wbudowane zadania, takie jak Program PowerShell i WinGet.

Pliki Imagedefinition.yaml

Plik YAML usługi Dev Box umożliwia zdefiniowanie zadań dostosowywania, które powinny być uruchamiane podczas tworzenia usługi Dev Box. Plik devbox.yaml może znajdować się w tym samym repozytorium co podstawowe źródło używane przez zespół deweloperski lub plik może znajdować się w scentralizowanym repozytorium konfiguracji.

Przykładowa definicja obrazu YAML:

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

nazwa

Wymagane: Ta przyjazna nazwa definicji obrazu jest skojarzona z tym devbox.yaml plikiem. To ustawienie określa nazwę definicji obrazu, która jest dostępna podczas tworzenia i aktualizowania pul.

name: myVSDevBox

obraz

Wymagane: Obraz, którego chcesz użyć jako obrazu podstawowego dla definicji obrazu, może być obrazem platformy handlowej:

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

Może to być obraz niestandardowy z dołączonego wystąpienia galerii obliczeń platformy Azure:

image: galleryname/imagename@version

Aby dowiedzieć się, jak dołączyć wystąpienie galerii obliczeniowej platformy Azure do centrum deweloperskiego, zobacz Konfigurowanie galerii obliczeń platformy Azure dla usługi Microsoft Dev Box.

Aby uzyskać listę obrazów, do których centrum deweloperów ma dostęp, użyj następującego az cli polecenia:

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

Potrzebujesz rozszerzenia centrum az cli deweloperskiego:

az extension add --name devcenter

buildProperties (właściwości kompilacji)

Ta kolekcja obiektów składa się z właściwości kompilacji, które mogą służyć do dostosowywania procesu kompilacji obrazu.

networkConnection

Fakultatywny: Określa połączenie sieciowe do użycia podczas tworzenia obrazu. To połączenie sieciowe umożliwia wykonywanie zadań dostosowywania w celu uzyskiwania dostępu do zasobów, takich jak konta magazynu lub repozytoria, które są dostępne z określonej sieci. Połączenie sieciowe musi być dołączone do Centrum deweloperów, zanim będzie można go użyć do tworzenia obrazu.

Przykład:

buildProperties:
    networkConnection: "my-westus3"

Zadania

Wymagane: Ta kolekcja obiektów składa się z zadań dostosowywania usługi Dev Box do uruchomienia podczas aprowizacji pola deweloperskiego. Określone dane wejściowe dostarczane do zadania różnią się w zależności od zadania.

Przykład:

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

Wszystkie zadania obsługują timeout właściwość , która jest opcjonalna.

Przykład:

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

Wbudowane zadania

Program PowerShell i winGet są dostępne jako zadania wbudowane. Można je wywoływać bezpośrednio bez dołączania wykazu na poziomie centrum deweloperskiego, który definiuje implementację tych zadań.

Wbudowane zadanie WinGet

To wbudowane zadanie stosuje konfigurację WinGet do pola deweloperskiego.

Parametry:

  • configurationFile:

    • Typ: string
    • Ścieżka do pliku YAML konfiguracji WinGet. Plik musi znajdować się na komputerze lokalnym.
    • Wymagane: false
  • downloadUrl:

    • Typ: string
    • Publicznie dostępny adres URL, pod którym jest przechowywany plik YAML konfiguracji. Plik jest pobierany do ścieżki, która configurationFile określa.
    • Wymagane: false
  • inlineConfigurationBase64:

    • Typ: string
    • Ciąg zakodowany w formacie Base64 pliku YAML konfiguracji WinGet. Plik jest dekodowany do ścieżki, która configurationFile określa lub do pliku tymczasowego, jeśli nie jest określony.
    • Wymagane: false
  • package:

    • Typ: string
    • Nazwa pakietu do zainstalowania.
    • Jeśli plik YAML konfiguracji jest udostępniany pod innymi parametrami, nazwa pakietu nie jest potrzebna.
    • Wymagane: false
  • version

    • Typ: string
    • Wersja pakietu do zainstalowania.
    • Jeśli plik YAML konfiguracji jest udostępniany w innych parametrach, nie ma potrzeby korzystania z wersji pakietu.
    • Wymagane: false

Wbudowane zadanie programu PowerShell

To wbudowane zadanie uruchamia polecenie programu PowerShell.

Parametry:

  • command:
    • Typ: string
    • Polecenie do uruchomienia.
    • Wymagane: true

pliki task.yaml

Zadania dostosowywania to jednostki kodu instalacji lub konfiguracji środowiska wielokrotnego użytku. Deweloperzy używają skryptów programu PowerShell do ich pisania i używania task.yaml pliku metadanych do ich opisania. Deweloperzy używają tych zadań do dostosowywania pola deweloperskiego, odwołując się do nich z devbox.yaml pliku.

Podczas definiowania zadań dostosowywania można zidentyfikować zadania, które są dostępne dla deweloperów do użycia w devbox.yaml plikach. Można ograniczyć akcje wysokiego poziomu uprawnień, takie jak możliwość uruchamiania dowolnego polecenia programu PowerShell.

Poniższy przykład definicji zadania uruchamia polecenie programu PowerShell w określonym katalogu roboczym:

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

Atrybuty

nazwa

Wymagane: Ten unikatowy identyfikator służy do odwoływania się do zadania z .devbox.yaml Nazwa musi być unikatowa w kontekście wykazu, w którym istnieje zadanie.

Nazewnictwo musi być zgodne z istniejącymi ograniczeniami zasobów platformy Azure. Nazwa musi zawierać od 3 do 63 znaków. Musi zaczynać się od znaku alfanumerycznego. Nazwa musi zawierać tylko znaki alfanumeryczne i znaki "-", "." lub "_". Znak "/" jest zarezerwowany.

name: powershell

opis

Fakultatywny: Ten atrybut opisuje zadanie.

description: This task executes a powershell command

Wejścia

Wymagane: Ten atrybut zawiera listę parametrów, które to zadanie przyjmuje jako dane wejściowe z devbox.yaml pliku i używa podczas jego uruchamiania polecenia. Każdy element nadrzędny reprezentuje nazwę parametru i obsługuje następujące klucze:

  • type (wymagane): typ danych wejściowych dla tego parametru. Możliwe wartości to string i int.
  • defaultValue (wymagane): wartość domyślna, która przyjmuje ten parametr.
  • required (wymagane): klucz określający, czy ten parametr jest opcjonalny, czy wymagany.
  • description (wymagane): opis tego, co reprezentuje ten parametr.
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute

polecenie

Wymagane: To polecenie służy do realizacji tego zadania. Podany ciąg polecenia jest uruchamiany w programie Windows PowerShell na komputerze lokalnym.

command: ".\runcommand.ps1

Odwołania do zmiennych w poleceniach

Aby odwołać się do parametrów w poleceniu, określ nazwę zmiennej w podwójnych nawiasach klamrowych, na przykład {{parameter_name}}. Wartości tych zmiennych są interpolowane przed uruchomieniem polecenia.

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

przerwa czasowa

Fakultatywny: Ta zmienna określa maksymalny czas (w minutach) oczekiwania na wykonanie zadania przed przekroczeniem limitu czasu zadania. Wartość domyślna to 30 minut.

timeout: 30

autor

Fakultatywny: Ta zmienna identyfikuje autora zadania w celu ułatwienia inspekcji i rozwiązywania problemów.

author: Contoso Corporation

documentationURL

Fakultatywny: Ta zmienna zawiera linki do dokumentacji tego zadania.

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

licenseURL

Fakultatywny: Ta zmienna łączy się z licencją dla tego zadania.

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