Schemareferens för anpassningar

Den här referensartikeln innehåller detaljerad information om och imagedefinition.yamltask.yaml filer som används för att anpassa Microsoft Dev Box. Utvecklare kan använda dessa YAML-filer för att definiera uppgifter för etablering och konfiguration av dev-rutor. Filerna bidrar till att säkerställa konsekvens och effektivitet i utvecklingsmiljöer. Den här artikeln beskriver schemat, obligatoriska attribut och exempel för båda filtyperna, tillsammans med inbyggda uppgifter som PowerShell och WinGet.

Imagedefinition.yaml-filer

Du kan använda en Dev Box YAML-fil för att definiera anpassningsuppgifter som bör köras när Dev Box skapas. En devbox.yaml fil kan finnas på samma lagringsplats som den primära källan som utvecklingsteamet använder, eller så finns filen i en centraliserad lagringsplats med konfigurationer.

Exempel på YAML för bilddefinition:

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

namn

Krävs: Det här egna namnet för bilddefinitionen är associerat med den här devbox.yaml filen. Den här inställningen styr namnet på den bilddefinition som är tillgänglig när du skapar och uppdaterar pooler.

name: myVSDevBox

bild

Krävs: Den avbildning som du vill använda som basavbildning för avbildningsdefinitionen kan vara en marketplace-avbildning:

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

Eller så kan det vara en anpassad avbildning från en bifogad Azure Compute Gallery-instans:

image: galleryname/imagename@version

Mer information om hur du kopplar en Azure Compute Gallery-instans till utvecklingscentret finns i Konfigurera Azure Compute Gallery för Microsoft Dev Box.

Använd det här az cli kommandot för att hämta en lista över avbildningar som utvecklingscentret har åtkomst till:

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

Du behöver tillägget dev center az cli :

az extension add --name devcenter

buildProperties

Den här objektsamlingen består av byggegenskaper som kan användas för att anpassa byggprocessen för avbildningen.

networkConnection

Valfri: Anger den nätverksanslutning som ska användas när avbildningen skapas. Med den här nätverksanslutningen kan anpassningsuppgifter komma åt resurser, till exempel lagringskonton eller lagringsplatser, som är tillgängliga från det angivna nätverket. Nätverksanslutningen måste vara ansluten till Dev Center innan den kan användas för att skapa avbildningar.

Exempel:

buildProperties:
    networkConnection: "my-westus3"

uppgifter

Krävs: Den här objektsamlingen består av Dev Box-anpassningsuppgifter som ska köras när du etablerar en utvecklingsruta. De specifika indata som tillhandahålls för en aktivitet varierar beroende på aktivitet.

Exempel:

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

Alla uppgifter stöder egenskapen timeout , vilket är valfritt.

Exempel:

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

Inbyggda uppgifter

PowerShell och WinGet är tillgängliga som inbyggda uppgifter. Du kan anropa dem direkt utan att koppla en katalog på utvecklingscenternivå som definierar implementeringen av dessa uppgifter.

WinGet-inbyggd uppgift

Den här inbyggda uppgiften tillämpar en WinGet-konfiguration på utvecklingsrutan.

Parametrar:

  • configurationFile:

    • Typ: string
    • Sökvägen till YAML-filen WinGet config. Filen måste finnas på den lokala datorn.
    • Krävs: false
  • downloadUrl:

    • Typ: string
    • En offentligt tillgänglig URL där config YAML-filen lagras. Filen laddas ned till sökvägen som configurationFile anger.
    • Krävs: false
  • inlineConfigurationBase64:

    • Typ: string
    • En Base64-kodad sträng i YaML-filen WinGet config. Filen avkodas till sökvägen som configurationFile anger eller till en temporär fil om den inte har angetts.
    • Krävs: false
  • package:

    • Typ: string
    • Namnet på paketet som ska installeras.
    • Om en YAML-konfigurationsfil tillhandahålls under andra parametrar behövs inte paketnamnet.
    • Krävs: false
  • version

    • Typ: string
    • Den version av paketet som ska installeras.
    • Om en config YAML-fil tillhandahålls under andra parametrar behöver du inte paketversionen.
    • Krävs: false

Inbyggd PowerShell-uppgift

Den här inbyggda aktiviteten kör ett PowerShell-kommando.

Parametrar:

  • command:
    • Typ: string
    • Kommandot som ska köras.
    • Krävs: true

task.yaml-filer

Anpassningsuppgifter är återanvändbara enheter för installationskod eller miljökonfiguration. Utvecklare använder PowerShell-skript för att skriva dem och använda en task.yaml metadatafil för att beskriva dem. Utvecklare använder dessa uppgifter för att anpassa en utvecklingsruta genom att referera till dem från en devbox.yaml fil.

När du definierar anpassningsuppgifter kan du identifiera de uppgifter som är tillgängliga för dina utvecklare för användning i devbox.yaml filer. Du kan begränsa åtgärder med hög behörighet, till exempel möjligheten att köra powershell-kommandon.

Följande exempel på en uppgiftsdefinition kör ett PowerShell-kommando i en specifik arbetskatalog:

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

Egenskaper

namn

Krävs: Den här unika identifieraren används för att referera till en aktivitet från devbox.yaml. Namnet måste vara unikt i kontexten för katalogen där uppgiften finns.

Namngivning måste matcha befintliga Begränsningar för Azure-resurser. Namnet måste vara mellan 3 och 63 tecken. Det måste börja med ett alfanumeriskt tecken. Namnet får endast bestå av alfanumeriska tecken och "-", "." eller "_". Tecknet "/" är reserverat.

name: powershell

beskrivning

Valfri: Det här attributet beskriver uppgiften.

description: This task executes a powershell command

Ingångar

Krävs: Det här attributet visar de parametrar som den här uppgiften tar som indata från en devbox.yaml fil och använder när kommandot körs. Varje överordnat objekt representerar namnet på en parameter och stöder följande nycklar:

  • type (krävs): Indatatypen för den här parametern. Det kan vara string eller int.
  • defaultValue (krävs): Standardvärdet som den här parametern tar.
  • required (krävs): Nyckeln som anger om den här parametern är valfri eller obligatorisk.
  • description (krävs): En beskrivning av vad den här parametern representerar.
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute

kommando

Krävs: Det här kommandot används för att utföra den här uppgiften. Den angivna kommandosträngen körs i Windows PowerShell på den lokala datorn.

command: ".\runcommand.ps1

Referensvariabler i kommandon

Om du vill referera till parametrar i ett kommando anger du variabelnamnet i dubbla klammerparenteser, {{parameter_name}}till exempel . Värdena för dessa variabler interpoleras innan kommandot körs.

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

vilopaus

Valfri: Den här variabeln anger den maximala tiden (i minuter) för att vänta tills aktivitetskörningen har slutförts innan aktiviteten överskrider tidsgränsen. Standardvärdet är 30 minuter.

timeout: 30

författare

Valfri: Den här variabeln identifierar aktivitetsförfattaren för att hjälpa till med granskningar och felsökning.

author: Contoso Corporation

documentationURL

Valfri: Den här variabeln länkar till dokumentationen för den här uppgiften.

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

licenseURL

Valfri: Den här variabeln länkar till licensen för den här uppgiften.

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