Aracılığıyla paylaş


Özelleştirmeler şema başvurusu

Bu başvuru makalesi, Microsoft Dev Box'ı imagedefinition.yaml özelleştirmek için kullanılan ve task.yaml dosyaları hakkında ayrıntılı bilgi sağlar. Geliştiriciler geliştirme kutularını sağlama ve yapılandırma görevlerini tanımlamak için bu YAML dosyalarını kullanabilir. Dosyalar, geliştirme ortamlarında tutarlılık ve verimlilik sağlamaya yardımcı olur. Bu makale, PowerShell ve WinGet gibi yerleşik görevlerin yanı sıra her iki dosya türü için şemayı, gerekli öznitelikleri ve örnekleri kapsar.

Imagedefinition.yaml dosyaları

Dev Box oluşturma sırasında çalışması gereken özelleştirme görevlerini tanımlamak için Bir Dev Box YAML dosyası kullanabilirsiniz. Bir devbox.yaml dosya, geliştirme ekibinin kullandığı birincil kaynakla aynı depoda veya merkezi bir yapılandırma deposunda olabilir.

Örnek görüntü tanımı YAML:

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

isim

Gerekli: Görüntü tanımının bu kolay adı bu devbox.yaml dosyayla ilişkilidir. Bu ayar, havuzları oluşturduğunuzda ve güncelleştirdiğinizde kullanılabilen görüntü tanımının adını denetler.

name: myVSDevBox

resim

Gerekli: Görüntü tanımınız için temel görüntü olarak kullanmak istediğiniz görüntü bir market görüntüsü olabilir:

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

Ekli bir Azure İşlem Galerisi örneğinden özel bir görüntü de olabilir:

image: galleryname/imagename@version

Geliştirme merkezinize Azure İşlem Galerisi örneği eklemeyi öğrenmek için bkz. Microsoft Dev Box için Azure İşlem Galerisi'nin yapılandırılması.

Geliştirme merkezinizin erişim iznine sahip olduğu görüntülerin listesini almak için şu az cli komutu kullanın:

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

Geliştirme merkezi az cli uzantısına ihtiyacınız vardır:

az extension add --name devcenter

buildProperties (yapı özellikleri)

Bu nesne koleksiyonu, görüntü için derleme işlemini özelleştirmek için kullanılabilecek derleme özelliklerinden oluşur.

networkConnection

Opsiyonel: Görüntü oluşturma sırasında kullanılacak ağ bağlantısını belirtir. Bu ağ bağlantısı, özelleştirme görevlerinin belirtilen ağdan erişilebilen depolama hesapları veya depolar gibi kaynaklara erişmesine olanak tanır. Görüntü oluşturmak için kullanılabilmesi için önce ağ bağlantısının Geliştirme Merkezi'ne eklenmesi gerekir.

Örnek:

buildProperties:
    networkConnection: "my-westus3"

Görevler

Gerekli: Bu nesne koleksiyonu, geliştirme kutusu sağladığınızda çalıştırılacak Dev Box özelleştirme görevlerinden oluşur. Göreve sağlanan belirli girişler göreve göre değişir.

Örnek:

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

Tüm görevler isteğe bağlı olan özelliğini destekler timeout .

Örnek:

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

Yerleşik görevler

PowerShell ve WinGet yerleşik görevler olarak kullanılabilir. Bu görevlerin uygulanmasını tanımlayan geliştirme merkezi düzeyinde bir katalog eklemeden bunları doğrudan çağırabilirsiniz.

WinGet yerleşik görevi

Bu yerleşik görev geliştirme kutusuna bir WinGet yapılandırması uygular.

Parametreler:

  • configurationFile:

    • Tür: string
    • WinGet yapılandırması YAML dosyasının yolu. Dosyanın yerel makinede bulunması gerekir.
    • Gerekli: false
  • downloadUrl:

    • Tür: string
    • Yapılandırma YAML dosyasının depolandığı genel olarak erişilebilir bir URL. Dosya, öğesini belirten configurationFile yola indirilir.
    • Gerekli: false
  • inlineConfigurationBase64:

    • Tür: string
    • WinGet yapılandırma YAML dosyasının Base64 kodlu dizesi. Dosyanın kodu belirtilen yola configurationFile veya belirtilmemişse geçici bir dosyaya çözülebilir.
    • Gerekli: false
  • package:

    • Tür: string
    • Yüklenecek paketin adı.
    • Yapılandırma YAML dosyası diğer parametreler altında sağlanırsa paket adı gerekli değildir.
    • Gerekli: false
  • version

    • Tür: string
    • Yüklenecek paketin sürümü.
    • Yapılandırma YAML dosyası diğer parametreler altında sağlanıyorsa paket sürümüne gerek yoktur.
    • Gerekli: false

PowerShell yerleşik görevi

Bu yerleşik görev bir PowerShell komutu çalıştırır.

Parametreler:

  • command:
    • Tür: string
    • Çalıştırılacak komut.
    • Gerekli: true

task.yaml dosyaları

Özelleştirme görevleri, yeniden kullanılabilir yükleme kodu veya ortam yapılandırması birimleridir. Geliştiriciler bunları yazmak için PowerShell betiklerini kullanır ve bunları açıklamak için bir task.yaml meta veri dosyası kullanır. Geliştiriciler bu görevleri bir geliştirme kutusunu dosyadan devbox.yaml başvurarak özelleştirmek için kullanır.

Özelleştirme görevlerini tanımlarken, geliştiricilerinizin dosyalarda devbox.yaml kullanabileceği görevleri tanımlayabilirsiniz. Herhangi bir PowerShell komutunu çalıştırma yeteneği gibi yüksek ayrıcalıklı eylemleri kısıtlayabilirsiniz.

Aşağıdaki görev tanımı örneği, belirli bir çalışma dizininde bir PowerShell komutu çalıştırır:

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

Özellikler

isim

Gerekli: Bu benzersiz tanımlayıcı, içinden devbox.yamlbir göreve başvurmak için kullanılır. Adın, görevin bulunduğu katalog bağlamında benzersiz olması gerekir.

Adlandırma, mevcut Azure kaynak kısıtlamalarıyla eşleşmelidir. Ad 3 ile 63 karakter arasında olmalıdır. Alfasayısal karakterle başlamalıdır. Ad yalnızca alfasayısal karakterlerden ve "-", "." veya "_" karakterlerinden oluşmalıdır. "/" karakteri ayrılmıştır.

name: powershell

Açıklama

Opsiyonel: Bu öznitelik, görevi açıklar.

description: This task executes a powershell command

Girişler

Gerekli: Bu öznitelik, bu görevin bir devbox.yaml dosyadan giriş olarak aldığı ve komutu çalıştırırken kullandığı parametreleri listeler. Her üst öğe bir parametrenin adını temsil eder ve şu anahtarları destekler:

  • type (gerekli): Bu parametre için giriş veri türü. string veya int olabilir.
  • defaultValue (gerekli): Bu parametrenin aldığı varsayılan değer.
  • required (gerekli): Bu parametrenin isteğe bağlı mı yoksa gerekli mi olduğunu belirten anahtar.
  • description (gerekli): Bu parametrenin neyi temsil ettiğiyle ilgili bir açıklama.
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute

komut

Gerekli: Bu komut bu görevi yerine getirmek için kullanılır. Sağlanan komut dizesi yerel makinede Windows PowerShell'de çalışır.

command: ".\runcommand.ps1

Komutlardaki başvuru değişkenleri

Bir komuttaki parametrelere başvurmak için, değişken adını çift ayraç içinde (örneğin, {{parameter_name}}) belirtin. Bu değişkenlerin değerleri, komutunuz çalıştırılmadan önce ilişkilendirilmiş.

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

zaman aşımı

Opsiyonel: Bu değişken, görev zaman aşımına uğramadan önce görev yürütmenin tamamlanmasını beklemek için geçmesi gereken en uzun süreyi (dakika cinsinden) belirtir. Varsayılan değer 30 dakikadır.

timeout: 30

yazar

Opsiyonel: Bu değişken, denetimlere ve sorun gidermeye yardımcı olmak için görev yazarını tanımlar.

author: Contoso Corporation

documentationURL

Opsiyonel: Bu değişken, bu görevin belgelerine bağlanır.

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

licenseURL

Opsiyonel: Bu değişken, bu görevin lisansına bağlanır.

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