Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přizpůsobení Microsoft Dev Boxu umožňuje platformovým inženýrům a vývojářům předinstalovat nástroje, klonovat repozitáře a konfigurovat nastavení na vývojářských boxech pomocí YAML souborů. Tato reference popisuje aktuální schéma pro YAML soubory a vestavěné úkoly, které podporují přizpůsobení Dev Boxu.
Použijte tento zdroj, když potřebujete:
- Vyhledejte vlastnosti, typy a výchozí nastavení, které jsou platné v souboru imagedefinition.yaml nebo task.yaml .
- Potvrďte parametry, které vestavěné
~/gitclone~/powershell, , a úkoly přijímají~/winget. - Pochopte, jak
tasks,userTasks,parameters,variables, a spolupracujíbuildProperties, když Dev Box poskytuje obrázek nebo aplikuje úpravy na dev box.
Typy souborů pro přizpůsobení
Přizpůsobení Dev Boxu používají tři typy souborů YAML, z nichž každý má jiný účel a cílovou skupinu:
| Soubor | Purpose | Author | Kde běží |
|---|---|---|---|
imagedefinition.yaml |
Definuje znovupoužitelný obrázek pro pool vývojových boxů. Uvádí základní obraz, parametry, proměnné, systémové úkoly, uživatelské úkoly a vlastnosti buildu, které se aplikují při vytváření definice obrazu v Dev Boxu. | Platformový inženýr nebo vedoucí týmu | Uloženo v katalogu připojeném k projektu; aplikováno na každý vývojářský box vytvořený z poolu, který odkazuje na definici obrázku. |
task.yaml |
Definuje znovupoužitelnou, parametrizovanou úlohu přizpůsobení, která je přidána do katalogu. Umožňuje administrátorům obalit PowerShell logiku metadaty, validací parametrů, dokumentací a nastavením spouštění. | Inženýr platformy | Uloženo v katalogu připojeném k vývojovému centru; Volám jménem z imagedefinition.yaml OR devbox.yaml souborů. |
devbox.yaml |
Osobní uživatelský soubor s úpravami nahrán při tvorbě vývojářského boxu. Platí to jen pro vývojářský box, ke kterému je připojený. | Individuální vývojář | Nahrané z lokálního disku nebo odkazované z repozitáře v portálu pro vývojáře. |
Vestavěné ~/gitclone, ~/powershell, a úkoly jsou ~/winget dostupné z jakéhokoli vývojového centra bez připojení katalogu. Chcete-li přidat vlastní úkoly nad rámec těchto vestavěných prvků, definujte je v task.yaml souborech v katalogu a volejte je podle názvu z definice obrázku nebo souboru pro uživatelskou úpravu. Pro více informací viz Microsoft Dev Box přizpůsobení.
Soubory Imagedefinition.yaml
Použijte imagedefinition.yaml k definování obrázků, parametrů, proměnných a úprav, které Dev Box používá při vytváření definice obrázku.
Příklad souboru imagedefinition.yaml
$schema: "1.0"
name: example-image-definition
description: Install core tools and clone the project repository.
image: microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2
parameters:
repositoryBranch:
type: string
default: main
description: Branch to clone during setup.
variables:
workspaceRoot:
type: string
value: C:\Workspaces
description: Root directory for repositories.
tasks:
- name: ~/winget
parameters:
package: Git.Git
- name: ~/gitclone
parameters:
repositoryUrl: https://github.com/example-org/example-repo.git
directory: C:\Workspaces
branch: "{{repositoryBranch}}"
userTasks:
- name: ~/powershell
parameters:
command: code C:\Workspaces\example-repo
buildProperties:
networkConnection: corp-westus3
Vlastnosti imagedefinition.yaml
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| $schema | řetězec nebo číslo | Specifikuje verzi schématu souboru. | |
| name | ✅ | řetězec | Definuje přátelský název pro definici obrázku. |
| description | řetězec | Popisuje definici obrázku. | |
| image | ✅ | řetězec | Identifikuje základní obrázek pro obrázek vývojového boxu. |
| parameters | objekt | Definuje vstupní parametry, na které se úlohy mohou odkazovat v definici obrázku. | |
| variables | objekt | Definuje znovupoužitelné hodnoty pro definici obrázku. | |
| Úkoly | pole objektů úloh | Uvádí úkoly přizpůsobení kontextu systému, které mají být spuštěny během provisioningu. | |
| userTasks | pole objektů úloh | Uvádí úkoly přizpůsobení uživatelského kontextu, které se spustí po přihlášení. | |
| buildVlastnosti | objekt | Definuje nastavení specifická pro tvorbu obrázků. |
$schema
(řetězec nebo číslo)
Specifikuje verzi schématu souboru. Současné příklady používají 1.0.
$schema: "1.0"
name
(řetězec, povinný, 3-63 znaků)
Specifikuje název přátele, který se zobrazí při výběru definice obrázku. Toto nastavení řídí název definice obrázku, která je k dispozici při vytváření a aktualizaci fondů. Název nesmí obsahovat /, ", [, ], :, |, <, +>=*&?,@;, mezeru, ani začínat na _ nebo .-
name: example-image-definition
description
(struna)
Popisuje účel definice obrázku.
description: Install core tools and clone the project repository.
image
(provázek, vyžadován)
Specifikuje základní obrázek pro obrázek vývojové krabice. Obrázek může být obrázek z tržiště nebo vlastní obrázek z připojené Azure Compute Gallery ve formátu gallery-name/image-name@version.
Examples:
image: microsoftwindowsdesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365
image: my-gallery/my-image@0.0.1
Pro připojení Azure Compute Gallery viz Configure Azure Compute Gallery for Microsoft Dev Box.
Pro získání seznamu obrázků, ke kterým má vaše vývojové centrum přístup, použijte Azure CLI:
az devcenter admin image list --dev-center-name CustomizationsImagingHQ --resource-group TeamCustomizationsImagingRG --query "[].name"
Pokud je potřeba, nejprve nainstalujte rozšíření Dev Center Azure CLI:
az extension add --name devcenter
parameters
(objekt)
Definuje pojmenované vstupní parametry, na které se můžete odkazovat v úlohách pomocí {{parameterName}} syntaxe.
parameters:
repositoryBranch:
type: string
default: main
description: Branch to clone during setup.
Vlastnosti parametru objektu
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| type | ✅ | řetězec | Specifikuje typ dat parametru. |
| povolený | pole řetězců | Omezuje parametr na pevný seznam hodnot řetězců. | |
| default | ✅ | String, Boolean, nebo číslo | Nastaví výchozí hodnotu parametru. |
| description | řetězec | Popisuje parametr. | |
| validationRegex | řetězec | Ověřuje hodnoty řetězců vůči regulárnímu výrazu. | |
| minLength | integer | Nastavuje minimální délku pro hodnoty řetězců. | |
| maxLength | integer | Nastavuje maximální délku pro hodnoty řetězců. |
type
(řetězec, povinné, povolené hodnoty: řetězec, boolean, číslo)
Specifikuje typ dat parametru.
allowed
(pole provázků)
Omezuje parametr na pevnou množinu povolených hodnot řetězců.
default
(požadovaný řetězec, boolean nebo číslo)
Nastaví výchozí hodnotu parametru.
description
(struna)
Popisuje parametr autorů a nástrojů.
validationRegex
(struna)
Definuje regulární výraz, kterému musí hodnoty řetězců odpovídat.
minLength
(celé číslo)
Nastavuje minimální délku pro hodnoty řetězců.
maxLength
(celé číslo)
Nastavuje maximální délku pro hodnoty řetězců.
variables
(objekt)
Definuje pojmenované proměnné, které můžete znovu použít v definici obrázku.
variables:
workspaceRoot:
type: string
value: C:\Workspaces
description: Root directory for repositories.
Vlastnosti proměnných objektů
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| type | ✅ | řetězec | Specifikuje datový typ proměnné. |
| hodnota | ✅ | String, Boolean, nebo číslo | Nastavuje hodnotu proměnné. |
| description | řetězec | Popisuje proměnnou. |
type
(řetězec, povinné, povolené hodnoty: řetězec, boolean, číslo)
Specifikuje datový typ proměnné.
value
(požadovaný řetězec, boolean nebo číslo)
Nastavuje hodnotu proměnné.
description
(struna)
Popisuje proměnnou pro autory a nástroje.
tasks
(pole objektů úloh)
Uvádí úkoly přizpůsobení, které se spustí v kontextu systému během provisioningu. Konkrétní vstupní hodnoty, které zadáte, se liší podle úkolu. Každý úkol musí obsahovat name a může také definovat displayName, description, parameters, a timeout.
tasks:
- name: ~/winget
parameters:
package: Git.Git
- name: ~/gitclone
timeout: 1800
parameters:
repositoryUrl: https://github.com/example-org/example-repo.git
directory: C:\Workspaces
Vlastnost timeout je volitelná a při použití v imagedefinition.yaml.
tasks:
- name: ~/powershell
timeout: 1800
parameters:
command: <command>
Vlastnosti zadávání úkolů
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| name | ✅ | řetězec | Identifikuje úkol k vyvolání. |
| displayName | řetězec | Poskytuje krátký text v uživatelském rozhraní pro úkol. | |
| description | řetězec | Popisuje to, co úkol dělá. | |
| parameters | objekt | Poskytuje vstupní hodnoty pro daný úkol. | |
| přerušení zápasu | integer | Přepisuje čas provedení úkolu během několika sekund. |
name
(provázek, vyžadován)
Identifikuje úkol, který má splnit. Použijte předponu ~/ pro vestavěné úkoly, jako ~/wingetjsou , ~/powershell, a ~/gitclone.
displayName
(struna)
Poskytuje krátký zobrazovací text pro UI povrchy.
description
(struna)
Popisuje to, co úkol dělá v definici obrázku.
parameters
(objekt)
Definuje vstupní hodnoty předávané úkolu. Názvy parametrů a typy hodnot závisí na zvoleném úkolu.
Definice parametrů se řídí stejným schématem popsaným pro task.yaml vlastnosti parametrů. Pro podrobnosti viz , , , , , validationRegex, minLength, , maxLength, a .requireddescriptiondefaultallowedtype
timeout
(celé číslo)
Přepíše časový limit provedení úkolu během několika sekund.
userTasks
(pole objektů úloh)
Uvádí úkoly přizpůsobení, které se spustí v uživatelském kontextu po přihlášení.
userTasks používá stejné schéma zadávání úloh jako tasks.
userTasks:
- name: ~/powershell
parameters:
command: code C:\Workspaces\example-repo
buildProperties
(objekt)
Definuje nastavení specifická pro sestavu, která přizpůsobují proces sestavování obrázků.
buildProperties:
networkConnection: corp-westus3
Vlastnosti objektu Vlastnosti buildu
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| síťové připojení | řetězec | Vybere síťové připojení pro tvorbu obrazů. |
networkConnection
(struna)
Specifikuje síťové připojení používané při vytváření obrazu. Toto nastavení použijte, když build úkoly potřebují přístup ke zdrojům, jako jsou soukromé repozitáře nebo úložné účty, které jsou dostupné pouze přes specifické síťové připojení. Síťové připojení musí být připojeno k vývojovému centru, než ho můžete použít pro tvorbu obrázků.
buildProperties:
networkConnection: my-westus3
Předdefinované úkoly
Používejte vestavěné úkoly, když potřebujete běžné úpravy bez připojení katalogu. Použijte předponu ~/ k volání vestavěné úlohy, například ~/winget, ~/powershell, nebo ~/gitclone.
Vestavěná úloha GitClone
Použijte vestavěnou úlohu GitClone k naklonování repozitáře do vývojářské krabice.
Příklad:
tasks:
- name: ~/gitclone
parameters:
repositoryUrl: https://github.com/microsoft/calculator
directory: C:\Workspaces
branch: main
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| repositoryUrl | ✅ | řetězec | Specifikuje URL repozitáře pro klonování. |
| adresář | řetězec | Nastaví adresář, pod kterým je repozitář klonován. | |
| větev | řetězec | Vybere větev ke klonování. | |
| Pat | řetězec | Poskytuje osobní přístupový token pro ověřené klonovací operace. |
repositoryUrl
(provázek, vyžadován)
Specifikuje URL repozitáře pro klonování.
directory
(string, výchozí: C:\Workspaces)
Nastaví adresář, pod kterým je repozitář klonován.
branch
(struna)
Vybere větev ke klonování.
pat
(struna)
Poskytuje osobní přístupový token pro ověřené klonovací operace. Když pat není dodán, klon je zařazen do fronty pro první přihlášení uživatele. Když dodáš pat, úkol se může během provisioningu klonovat. Použijte odkaz na Key Vault secret místo surové hodnoty tajemství.
Vestavěná úloha GitClone také instaluje PowerShell 7, Git a Git LFS během spuštění.
Integrovaná úloha PowerShellu
Použijte vestavěnou úlohu PowerShell k spuštění příkazu nebo skriptu.
Příklad:
tasks:
- name: ~/powershell
parameters:
command: Write-Host "Hello from Dev Box"
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| command | řetězec | Spustí příkaz přímo do řady. | |
| workingDirectory | řetězec | Nastavuje pracovní adresář pro příkaz nebo skript. | |
| skript | řetězec | Spouští lokální nebo vzdálený PowerShell skript. | |
| scriptArgs | řetězec | Poskytuje argumenty pro scénář. | |
| scriptExecutionPolicy | řetězec | Nastavuje politiku provádění skriptu. |
command
(struna)
Spustí příkaz přímo do řady. Pokud uvedete command, scriptscriptArgs, a parametry jsou scriptExecutionPolicy ignorovány.
workingDirectory
(struna)
Nastavuje pracovní adresář pro příkaz nebo skript.
script
(struna)
Specifikuje cestu k lokálnímu nebo vzdálenému PowerShell skriptu, který má spuštěn. Tento parametr je ignorován, pokud command je poskytnut.
scriptArgs
(struna)
Poskytuje argumenty pro scénář. Tento parametr je ignorován, pokud command je poskytnut.
scriptExecutionPolicy
(řetězec, výchozí: Bypass)
Nastavuje politiku provádění skriptu. Tento parametr je ignorován, pokud command je poskytnut.
Předdefinovaná úloha WinGet
Použijte vestavěnou úlohu WinGet k přímé instalaci balíčku nebo aplikaci konfiguračního souboru WinGet.
Important
Vestavěná úloha WinGet není totéž jako spustitelný winget soubor. Vestavěná úloha používá PowerShell WinGet (CMDLET).
Příklad:
tasks:
- name: ~/winget
parameters:
package: GitHub.GitHubDesktop
version: 3.4.16
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| configurationFile | řetězec | Ukazuje na lokální konfigurační soubor WinGet. | |
| downloadUrl | řetězec | Stáhne konfigurační soubor z veřejné URL adresy. | |
| inlineConfigurationBase64 | řetězec | Poskytuje konfigurační soubor WinGet kódovaný v Base64. | |
| package | řetězec | Nainstaluje balíček přímo podle jména. | |
| version | řetězec | Nainstaluje konkrétní verzi balíčku. |
configurationFile
(struna)
Ukazuje na konfigurační YAML soubor WinGet na lokálním počítači.
downloadUrl
(struna)
Specifikuje veřejnou URL pro konfigurační YAML soubor WinGet. Soubor je stažen do cesty v configurationFile.
inlineConfigurationBase64
(struna)
Poskytuje YAML soubor pro konfiguraci WinGet kódovaný v Base64. Úkol ho dekóduje na configurationFile, nebo do dočasného souboru, pokud configurationFile není nastaven.
package
(struna)
Nainstaluje balíček přímo podle jména. Pokud použijete zdrojový kód konfiguračního souboru, nemusíte dodávat package.
version
(struna)
Nainstaluje konkrétní verzi balíčku. Pokud použijete zdrojový kód konfiguračního souboru, nemusíte dodávat version.
soubory task.yaml
Použijte task.yaml k definování znovupoužitelného úkolu přizpůsobení v katalogu. Definice úkolu popisuje příkazy, metadata, parametry, dokumentaci a nastavení provádění úkolu.
Když definujete úkoly přizpůsobení, identifikujete úkoly, které jsou vývojářům dostupné pro použití v imagedefinition.yaml souborech nebo devbox.yaml souborech. Definice úloh můžete použít k omezení akcí s vysokými oprávněními, například možnost spouštět libovolné PowerShell příkazy.
Příklad souboru task.yaml
$schema: "1.0"
name: install-vsix-extension
description: Install a Visual Studio extension from a VSIX package.
author: Contoso Corporation
command: .\install-extension.ps1 -VsixPath {{vsixPath}}
documentationURL: https://contoso.example/devbox/install-vsix-extension
keywords:
- visual-studio
- extension
parameters:
vsixPath:
type: string
required: true
description: Path to the VSIX package.
timeout: 30
rebootRequired: false
documentation:
notes: Use a path that is available during task execution.
examples:
- name: install-vsix-extension
parameters:
vsixPath: .\extensions\contoso.vsix
Následující příklad ukazuje definici úlohy, která spouští PowerShell příkaz v konkrétním pracovním adresáři:
$schema: "1.0"
name: powershell
description: Execute a PowerShell command.
author: Microsoft Corporation
command: .\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}
parameters:
command:
type: string
default: ""
required: true
description: The command to execute.
workingDirectory:
type: string
default: ""
required: false
description: The working directory in which to execute the command.
Vlastnosti Task.yaml
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| $schema | ✅ | řetězec | Specifikuje verzi schématu pro soubor úlohy. |
| name | ✅ | řetězec | Definuje identifikátor úlohy. |
| command | ✅ | řetězec | Poskytuje PowerShell příkaz, který úkol implementuje. |
| description | řetězec | Popisuje úkol. | |
| autora | řetězec | Identifikuje autora úkolu. | |
| issueNotificationEmail | řetězec | Poskytuje kontaktní e-mail pro záležitosti s úkolem. | |
| documentationURL | řetězec | Odkazy na dokumentaci k úkolům. | |
| licenseURL | řetězec | Odkazy na licenci na úkol. | |
| Klíčová slova | pole řetězců | Seznamy klíčových slov pro úkol vyhledáva. | |
| parameters | objekt | Definuje vstupy, které úkol přijímá. | |
| přerušení zápasu | integer | Nastaví výchozí časový limit na minuty. | |
| dokumentace | objekt | Přidává poznámky a příklady volání úkolů pro spotřebitele. | |
| rebootRequiredRequired. | Boolean | Označuje, zda úkol vyžaduje restart po vykonání. |
$schema
(provázek, vyžadován)
Specifikuje verzi schématu pro definici úkolu. Současné příklady používají 1.0.
name
(provázek, vyžadován)
Definuje identifikátor použitý k odkazování na úkol ze imagedefinition.yaml souborů or devbox.yaml souborů. Název musí být jedinečný v kontextu katalogu, ve kterém úloha existuje.
Používejte stejná omezení pojmenování jako jiné artefakty přizpůsobení Dev Boxu. Název musí mít mezi 3 a 63 znaky, začínat alfanumerickým znakem a obsahovat pouze alfanumerické znaky, -, ., nebo _. Znak / je vyhrazen.
name: install-vsix-extension
command
(provázek, vyžadován)
Specifikuje PowerShell příkaz, který úkol implementuje. Příkaz běží ve Windows PowerShellu na lokálním počítači. Použijte {{parameterName}} syntaxi k odkazování na hodnoty parametrů v příkazovém řetězci.
command: .\install-extension.ps1 -VsixPath {{vsixPath}}
Příklad:
command: .\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}
description
(struna)
Popisuje účel úkolu.
description: This task executes a PowerShell command.
author
(struna)
Identifikuje autora úkolu pro audity a řešení problémů.
author: Contoso Corporation
issueNotificationEmail
(struna)
Poskytuje e-mailovou adresu, na kterou se uživatelé mohou obrátit, pokud mají s úkolem problémy. Funkčnost produktu tuto hodnotu nespotřebovává.
documentationURL
(struna)
Odkazy na dokumentaci k tomuto úkolu.
documentationURL: https://link.to/documentation
licenseURL
(struna)
Odkazy na licenci na úkol.
licenseURL: https://link.to/license
keywords
(pole provázků)
Uvádí klíčová slova, která pomáhají spotřebitelům najít daný úkol.
parameters
(objekt)
Definuje pojmenované vstupní parametry pro danou úlohu. Každý podřízený prvek představuje název parametru a může definovat typ parametru, povolené hodnoty, výchozí hodnotu, popis, validační pravidla, limity délky a zda je parametr vyžadován.
parameters:
vsixPath:
type: string
required: true
description: Path to the VSIX package.
Vlastnosti definice parametrů
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| type | ✅ | řetězec | Specifikuje typ vstupních dat. |
| povolený | pole řetězců | Omezuje vstup na pevný seznam hodnot řetězců. | |
| default | String, Boolean, nebo číslo | Nastaví výchozí hodnotu pro vstup. | |
| description | řetězec | Popisuje vstup. | |
| validationRegex | řetězec | Ověřuje hodnoty řetězců vůči regulárnímu výrazu. | |
| minLength | integer | Nastavuje minimální délku pro hodnoty řetězců. | |
| maxLength | integer | Nastavuje maximální délku pro hodnoty řetězců. | |
| required | Boolean | Označuje, zda je nutné vstup dodat. |
type
(řetězec, povinné, povolené hodnoty: řetězec, boolean, číslo)
Specifikuje typ vstupních dat.
allowed
(pole provázků)
Omezuje vstup na pevnou sadu povolených hodnot řetězců.
default
(struna, boolean nebo číslo)
Nastaví výchozí hodnotu pro vstup.
description
(struna)
Popisuje vstup.
validationRegex
(struna)
Definuje regulární výraz, kterému musí hodnoty řetězců odpovídat.
minLength
(celé číslo)
Nastavuje minimální délku pro hodnoty řetězců.
maxLength
(celé číslo)
Nastavuje maximální délku pro hodnoty řetězců.
required
(boolean)
Označuje, zda je nutné vstup dodat. Pokud tento parametr vynecháte, výchozí hodnota je false.
timeout
(celočíselné, výchozí: 30)
Nastaví výchozí časový limit úkolu na minuty. Pokud nezadáte hodnotu, výchozí je 30 minut.
timeout: 30
documentation
(objekt)
Poskytuje poznámky a příklady vyvolávání, které mohou uživatelé úkolu použít, když úkol přidají do definice obrázku.
Vlastnosti dokumentačního objektu
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
| Poznámky | řetězec | Poskytuje pokyny pro uživatele projektu. | |
| Příklady | pole objektů úloh | Ukazuje, jak spustit úkol z YAML souboru. |
notes
(struna)
Přidává rady nebo upozornění pro uživatele tohoto úkolu.
examples
(pole objektů úloh)
Ukazuje příklady volání úloh použitím stejného schématu jako záznamy úloh v imagedefinition.yaml.
rebootRequired
(boolean, výchozí: nepravda)
Označuje, zda úkol vyžaduje restart po vykonání.
Související obsah
-
Nastavte týmové přizpůsobení – Vytvářejte
imagedefinition.yamlsoubory a aplikujte je do dev box poolu. -
Nastavte si uživatelský soubor pro přizpůsobení pro váš vývojářský box – Vytvořte a nahrajte osobní
devbox.yamlsoubor. -
Konfigurujte úkoly pro přizpůsobení Dev Boxu – Vytvářejte
task.yamlsoubory a publikujte je prostřednictvím katalogu. - Připojení k prostředkům Azure nebo klonování privátních úložišť