Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Typ:
downloadUrl:- Typ:
string - Publicznie dostępny adres URL, pod którym jest przechowywany plik YAML konfiguracji. Plik jest pobierany do ścieżki, która
configurationFileokreśla. - Wymagane:
false
- Typ:
inlineConfigurationBase64:- Typ:
string - Ciąg zakodowany w formacie Base64 pliku YAML konfiguracji WinGet. Plik jest dekodowany do ścieżki, która
configurationFileokreśla lub do pliku tymczasowego, jeśli nie jest określony. - Wymagane:
false
- Typ:
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
- Typ:
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
- Typ:
Wbudowane zadanie programu PowerShell
To wbudowane zadanie uruchamia polecenie programu PowerShell.
Parametry:
-
command:- Typ:
string - Polecenie do uruchomienia.
- Wymagane:
true
- Typ:
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 tostringiint. -
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"