Megosztás:


Testreszabások sémareferenciája

Ez a referenciacikk részletes információkat tartalmaz a imagedefinition.yaml Microsoft Dev Box testreszabásához használt fájlokról és task.yaml fájlokról. A fejlesztők ezeket a YAML-fájlokat használhatják a fejlesztői mezők kiépítéséhez és konfigurálásához szükséges feladatok meghatározásához. A fájlok segítenek a fejlesztési környezetek konzisztenciájának és hatékonyságának biztosításában. Ez a cikk ismerteti a sémát, a szükséges attribútumokat és példákat mindkét fájltípushoz, valamint olyan beépített feladatokat, mint a PowerShell és a WinGet.

Imagedefinition.yaml-fájlok

A Dev Box YAML-fájllal meghatározhatja a Dev Box létrehozása során futtatandó testreszabási feladatokat. Előfordulhat, hogy egy devbox.yaml fájl ugyanabban az adattárban él, mint a fejlesztői csapat által használt elsődleges forrás, vagy a fájl a konfigurációk központi adattárában található.

Példa képdefiníció YAML:

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

név

Szükséges: A képdefiníció rövid neve ehhez devbox.yaml a fájlhoz van társítva. Ez a beállítás szabályozza a készletek létrehozásakor és frissítésekor elérhető képdefiníció nevét.

name: myVSDevBox

kép

Szükséges: A képdefiníció alapképeként használni kívánt rendszerkép lehet piactéri rendszerkép:

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

Vagy egy csatolt Azure Compute Gallery-példány egyéni rendszerképe is lehet:

image: galleryname/imagename@version

Ha tudni szeretné, hogyan csatolhat Azure Compute Gallery-példányt a fejlesztői központhoz, olvassa el az Azure Compute Gallery konfigurálása a Microsoft Dev Boxhoz című témakört.

Azoknak a képeknek a listájának lekéréséhez, amelyekhez a fejlesztői központ rendelkezik hozzáféréssel, használja ezt a az cli parancsot:

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

Szüksége van a fejlesztői központ az cli bővítményére:

az extension add --name devcenter

buildProperties

Ez az objektumgyűjtemény összeállítási tulajdonságokból áll, amelyek a rendszerkép buildelési folyamatának testreszabására használhatók.

networkConnection

Szabadon választható: Megadja a rendszerkép létrehozása során használni kívánt hálózati kapcsolatot. Ez a hálózati kapcsolat lehetővé teszi a testreszabási feladatok számára, hogy hozzáférjenek a megadott hálózatról elérhető erőforrásokhoz, például tárfiókokhoz vagy adattárakhoz. A hálózati kapcsolatot csatlakoztatni kell a Fejlesztői központhoz, mielőtt a rendszerképek létrehozásakor használni lehetne.

Példa:

buildProperties:
    networkConnection: "my-westus3"

feladatok

Szükséges: Ez az objektumgyűjtemény Dev Box testreszabási feladatokból áll, és a dev box kiépítésekor futtatható. A tevékenységhez adott bemenetek tevékenységenként eltérőek.

Példa:

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

Minden tevékenység támogatja a timeout tulajdonságot, ami nem kötelező.

Példa:

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

Beépített feladatok

A PowerShell és a WinGet beépített feladatként érhető el. Közvetlenül anélkül hívhatja meg őket, hogy egy katalógust csatol a fejlesztési központ szintjén, amely meghatározza ezeknek a feladatoknak a megvalósítását.

WinGet beépített feladat

Ez a beépített feladat WinGet-konfigurációt alkalmaz a fejlesztői dobozra.

Paraméterek:

  • configurationFile:

    • Típus: string
    • A WinGet config YAML-fájl elérési útja. A fájlnak a helyi gépen kell lennie.
    • Szükséges: false
  • downloadUrl:

    • Típus: string
    • Nyilvánosan elérhető URL- cím, amelyen a konfigurációs YAML-fájl tárolódik. A fájl a megadott elérési útra configurationFile lesz letöltve.
    • Szükséges: false
  • inlineConfigurationBase64:

    • Típus: string
    • A WinGet config YAML-fájl Base64 kódolású sztringje. A fájl dekódolva van a megadott elérési útra configurationFile vagy egy ideiglenes fájlra, ha nincs megadva.
    • Szükséges: false
  • package:

    • Típus: string
    • A telepíteni kívánt csomag neve.
    • Ha a konfigurációs YAML-fájl más paraméterek mellett van megadva, a csomag nevére nincs szükség.
    • Szükséges: false
  • version

    • Típus: string
    • A telepíteni kívánt csomag verziója.
    • Ha a konfigurációs YAML-fájl más paraméterek mellett van megadva, nincs szükség a csomag verziójára.
    • Szükséges: false

Beépített PowerShell-feladat

Ez a beépített feladat egy PowerShell-parancsot futtat.

Paraméterek:

  • command:
    • Típus: string
    • A futtatandó parancs.
    • Szükséges: true

task.yaml-fájlok

A testreszabási feladatok a telepítési kód vagy a környezet konfigurációjának újrafelhasználható egységei. A fejlesztők PowerShell-szkriptekkel írják meg őket, és metaadatfájlt task.yaml használnak a leírásukhoz. A fejlesztők ezeket a feladatokat használva testre szabnak egy fejlesztői mezőt egy devbox.yaml fájlból való hivatkozással.

A testreszabási feladatok meghatározásakor azonosíthatja a fejlesztők számára a fájlokban devbox.yaml való használatra rendelkezésre álló feladatokat. Korlátozhatja a magas jogosultsági szintű műveleteket, például bármely PowerShell-parancs futtatásának lehetőségét.

Az alábbi példa egy feladatdefinícióra egy PowerShell-parancsot futtat egy adott munkakönyvtárban:

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

Tulajdonságok

név

Szükséges: Ezzel az egyedi azonosítóval hivatkozhat egy feladatra a következőből: devbox.yaml. A névnek egyedinek kell lennie annak a katalógusnak a kontextusában, amelyben a tevékenység létezik.

Az elnevezésnek meg kell egyeznie a meglévő Azure-erőforráskorlátokkal. A névnek 3 és 63 karakter közöttinek kell lennie. Ennek alfanumerikus karakterrel kell kezdődnie. A név csak alfanumerikus karakterekből és "-", "." vagy "_" karakterekből állhat. A "/" karakter foglalt.

name: powershell

leírás

Szabadon választható: Ez az attribútum a feladatot írja le.

description: This task executes a powershell command

Bemenetek

Szükséges: Ez az attribútum felsorolja azokat a paramétereket, amelyeket ez a feladat bemenetként vesz fel egy devbox.yaml fájlból, és a parancs futtatása közben használja. Minden szülőelem egy paraméter nevét jelöli, és támogatja az alábbi kulcsokat:

  • type (kötelező): A paraméter bemeneti adattípusa. A következők egyike lehet: string vagy int.
  • defaultValue (kötelező): A paraméter alapértelmezett értéke.
  • required (kötelező): Az a kulcs, amely meghatározza, hogy ez a paraméter nem kötelező vagy kötelező.
  • description (kötelező): Annak leírása, hogy ez a paraméter mit jelöl.
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute

parancs

Szükséges: Ez a parancs a feladat végrehajtására szolgál. A megadott parancssztring a Windows PowerShellben fut a helyi gépen.

command: ".\runcommand.ps1

Referenciaváltozók parancsokban

Ha paraméterekre szeretne hivatkozni egy parancsban, adja meg a változó nevét dupla zárójelben, például {{parameter_name}}. Ezeknek a változóknak az értékeit a parancs futtatása előtt interpolálja a rendszer.

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

időkorlát

Szabadon választható: Ez a változó azt a maximális időt adja meg (percekben), amíg a tevékenység végrehajtása befejeződik, mielőtt a tevékenység túllépi az időkorlátot. Az alapértelmezett érték 30 perc.

timeout: 30

szerző

Szabadon választható: Ez a változó azonosítja a tevékenység szerzőt, hogy segítsen az auditálásban és a hibaelhárításban.

author: Contoso Corporation

documentationURL

Szabadon választható: Ez a változó a feladat dokumentációját ismerteti.

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

licenseURL

Szabadon választható: Ez a változó a feladat licencére hivatkozik.

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