Bagikan melalui


Referensi skema kustomisasi

Artikel referensi ini menyediakan informasi terperinci tentang imagedefinition.yaml file dan task.yaml yang digunakan untuk menyesuaikan Microsoft Dev Box. Pengembang dapat menggunakan file YAML ini untuk menentukan tugas untuk menyediakan dan mengonfigurasi kotak pengembangan. File membantu memastikan konsistensi dan efisiensi di seluruh lingkungan pengembangan. Artikel ini membahas skema, atribut yang diperlukan, dan contoh untuk kedua jenis file, bersama dengan tugas bawaan seperti PowerShell dan WinGet.

File imagedefinition.yaml

Anda dapat menggunakan file YAML Dev Box untuk menentukan tugas kustomisasi yang harus dijalankan selama pembuatan Dev Box. File devbox.yaml mungkin tinggal di repositori yang sama dengan sumber utama yang digunakan tim pengembang, atau file mungkin berada di repositori konfigurasi terpusat.

Contoh definisi gambar YAML:

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

Nama

Diperlukan: Nama yang mudah diingat untuk definisi gambar ini dikaitkan dengan file ini devbox.yaml . Pengaturan ini mengontrol nama definisi gambar yang tersedia saat Anda membuat dan memperbarui kumpulan.

name: myVSDevBox

citra

Diperlukan: Gambar yang ingin Anda gunakan sebagai gambar dasar untuk definisi gambar Anda dapat menjadi gambar marketplace:

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

Atau dapat berupa gambar kustom dari instans Azure Compute Gallery terlampir:

image: galleryname/imagename@version

Untuk mempelajari cara melampirkan instans Azure Compute Gallery ke pusat pengembangan Anda, lihat Mengonfigurasi Azure Compute Gallery untuk Microsoft Dev Box.

Untuk mendapatkan daftar gambar yang dapat diakses pusat pengembangan Anda, gunakan perintah ini az cli :

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

Anda memerlukan ekstensi pusat az cli pengembangan:

az extension add --name devcenter

buildProperties

Koleksi objek ini terdiri dari properti build yang dapat digunakan untuk menyesuaikan proses build untuk gambar.

networkConnection

Fakultatif: Menentukan koneksi jaringan yang akan digunakan selama pembuatan gambar. Koneksi jaringan ini memungkinkan tugas penyesuaian untuk mengakses sumber daya, seperti akun penyimpanan atau repositori, yang dapat diakses dari jaringan yang ditentukan. Koneksi jaringan harus dilampirkan ke Dev Center sebelum dapat digunakan untuk pembuatan gambar.

Contoh:

buildProperties:
    networkConnection: "my-westus3"

tugas

Diperlukan: Koleksi objek ini terdiri dari tugas kustomisasi Dev Box untuk dijalankan saat Anda memprovisikan kotak dev. Input spesifik yang disediakan untuk tugas bervariasi menurut tugas.

Contoh:

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

Semua tugas mendukung timeout properti , yang bersifat opsional.

Contoh:

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

Tugas bawaan

PowerShell dan WinGet tersedia sebagai tugas bawaan. Anda dapat memanggilnya secara langsung tanpa melampirkan katalog di tingkat pusat pengembangan yang menentukan implementasi tugas-tugas ini.

Tugas bawaan WinGet

Tugas bawaan ini menerapkan konfigurasi WinGet ke kotak dev.

Parameter:

  • configurationFile:

    • Jenis: string
    • Jalur ke file YAML konfigurasi WinGet. File harus terletak di komputer lokal.
    • Diperlukan: false
  • downloadUrl:

    • Jenis: string
    • URL yang dapat diakses publik tempat file YAML konfigurasi disimpan. File diunduh ke jalur yang configurationFile menentukan.
    • Diperlukan: false
  • inlineConfigurationBase64:

    • Jenis: string
    • String yang dikodekan Base64 dari file YAML konfigurasi WinGet. File didekodekan ke jalur yang configurationFile menentukan atau ke file sementara jika tidak ditentukan.
    • Diperlukan: false
  • package:

    • Jenis: string
    • Nama paket yang akan diinstal.
    • Jika file YAML konfigurasi disediakan di bawah parameter lain, nama paket tidak diperlukan.
    • Diperlukan: false
  • version

    • Jenis: string
    • Versi paket yang akan diinstal.
    • Jika file YAML konfigurasi disediakan di bawah parameter lain, tidak perlu versi paket.
    • Diperlukan: false

Tugas bawaan PowerShell

Tugas bawaan ini menjalankan perintah PowerShell.

Parameter:

  • command:
    • Jenis: string
    • Perintah yang akan dijalankan.
    • Diperlukan: true

file task.yaml

Tugas kustomisasi adalah unit kode penginstalan atau konfigurasi lingkungan yang dapat digunakan kembali. Pengembang menggunakan skrip PowerShell untuk menulisnya dan menggunakan task.yaml file metadata untuk menjelaskannya. Pengembang menggunakan tugas-tugas ini untuk menyesuaikan kotak dev dengan merujuknya dari devbox.yaml file.

Saat menentukan tugas kustomisasi, Anda dapat mengidentifikasi tugas yang tersedia untuk pengembang Anda untuk digunakan dalam devbox.yaml file. Anda dapat membatasi tindakan hak istimewa tinggi, seperti kemampuan untuk menjalankan perintah PowerShell apa pun.

Contoh definisi tugas berikut menjalankan perintah PowerShell dalam direktori kerja tertentu:

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

Atributs

Nama

Diperlukan: Pengidentifikasi unik ini digunakan untuk merujuk ke tugas dari devbox.yaml. Nama harus unik dalam konteks katalog tempat tugas berada.

Penamaan harus cocok dengan batasan sumber daya Azure yang ada. Nama harus antara 3 dan 63 karakter. Ini harus dimulai dengan karakter alfanumerik. Nama hanya boleh terdiri dari karakter alfanumerik dan "-", ".", atau "_". Karakter "/" dicadangkan.

name: powershell

deskripsi

Fakultatif: Atribut ini menjelaskan tugas.

description: This task executes a powershell command

Masukan

Diperlukan: Atribut ini mencantumkan parameter yang diambil tugas ini sebagai input dari devbox.yaml file dan digunakan saat menjalankan perintah. Setiap item induk mewakili nama parameter dan mendukung kunci ini:

  • type (wajib): Jenis data input untuk parameter ini. Bisa string atau int.
  • defaultValue (wajib): Nilai default yang diambil parameter ini.
  • required (wajib): Kunci yang menentukan apakah parameter ini opsional atau diperlukan.
  • description (wajib): Deskripsi tentang apa yang diwakili parameter ini.
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute

Perintah

Diperlukan: Perintah ini digunakan untuk memenuhi tugas ini. String perintah yang disediakan berjalan di Windows PowerShell pada komputer lokal.

command: ".\runcommand.ps1

Variabel referensi dalam perintah

Untuk mereferensikan parameter dalam perintah, tentukan nama variabel dalam kurung kurawal ganda, misalnya, {{parameter_name}}. Nilai variabel ini diinterpolasi sebelum perintah Anda berjalan.

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

Batas Waktu

Fakultatif: Variabel ini menentukan jumlah waktu maksimum (dalam menit) untuk menunggu eksekusi tugas selesai sebelum waktu tugas habis. Defaultnya adalah 30 menit.

timeout: 30

pembuat

Fakultatif: Variabel ini mengidentifikasi penulis tugas untuk membantu audit dan pemecahan masalah.

author: Contoso Corporation

documentationURL

Fakultatif: Variabel ini menautkan ke dokumentasi untuk tugas ini.

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

licenseURL

Fakultatif: Variabel ini menautkan ke lisensi untuk tugas ini.

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