DevTest Labs için özel yapıtlar oluşturma

Bu makalede, Azure DevTest Labs sanal makineler (VM) için özel yapıt dosyalarının nasıl oluşturulacağı açıklanır. DevTest Labs yapıtları, vm sağlamak için gerçekleştireceğiniz eylemleri belirtir. Yapıt, git deposundaki bir klasörde depoladığınız bir yapıt tanım dosyasından ve diğer betik dosyalarından oluşur.

Yapıt tanım dosyaları

Yapıt tanım dosyaları, vm'ye yüklemek istediklerinizi belirten JSON ifadeleridir. Dosyalar bir yapıtın adını, çalıştırılacak komutu ve komutun kullanılabilir parametrelerini tanımlar. Yapıt tanımı dosyasında diğer betik dosyalarına ada göre başvurabilirsiniz.

Aşağıdaki örnekte artifactfile.json yapıt tanım dosyasının temel yapısını oluşturan bölümler gösterilmektedir:

  {
    "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json",
    "title": "",
    "description": "",
    "iconUri": "",
    "targetOsType": "",
    "parameters": {
      "<parameterName>": {
        "type": "",
        "displayName": "",
        "description": ""
      }
    },
    "runCommand": {
      "commandToExecute": ""
    }
  }
Öğe adı Açıklama
$schema JSON şema dosyasının konumu. JSON şema dosyası, tanım dosyasının geçerliliğini test etmede size yardımcı olabilir.
title Laboratuvarda görüntülenecek yapıtın adı. Gerekli.
description Laboratuvarda görüntülenecek yapıtın açıklaması. Gerekli.
iconUri Laboratuvarda görüntülenecek yapıt simgesinin URI'sini seçin.
targetOsType Yapıtın yükleneceği VM'nin işletim sistemi. Desteklenen değerler: Windows, Linux. Gerekli.
parameters VM'ye yüklerken yapıtı özelleştirmeye yönelik değerler.
runCommand VM'de yürütülecek yapıt yükleme komutu. Gerekli.

Yapıt parametreleri

Tanım dosyasının parametreler bölümünde, bir kullanıcının yapıt yüklerken girebileceği değerleri belirtin. Yapıt yükleme komutunda bu değerlere başvurabilirsiniz.

Parametreleri tanımlamak için aşağıdaki yapıyı kullanın:

  "parameters": {
    "<parameterName>": {
      "type": "<type-of-parameter-value>",
      "displayName": "<display-name-of-parameter>",
      "description": "<description-of-parameter>"
    }
  }
Öğe adı Açıklama
type Parametre değeri türü. Gerekli.
displayName Laboratuvar kullanıcısına görüntülenecek parametrenin adı. Gerekli.
description Laboratuvar kullanıcısına görüntülenecek parametrenin açıklaması. Gerekli.

İzin verilen parametre değer türleri şunlardır:

Tür Açıklama
string Geçerli herhangi bir JSON dizesi
int Geçerli herhangi bir JSON tamsayısı
bool Geçerli herhangi bir JSON boole değeri
array Geçerli herhangi bir JSON dizisi

Güvenli dizeler olarak gizli diziler

Gizli dizileri kullanıcı arabiriminde maskelenmiş karakterlerle güvenli dize parametreleri olarak bildirmek için artifactfile.json dosyasının bölümünde aşağıdaki söz dizimini parameters kullanın:


    "securestringParam": {
      "type": "securestring",
      "displayName": "Secure String Parameter",
      "description": "Any text string is allowed, including spaces, and will be presented in UI as masked characters.",
      "allowEmpty": false
    },

PowerShell betiğini çalıştırmak için yapıt yükleme komutu, komutu kullanılarak oluşturulan güvenli dizeyi ConvertTo-SecureString alır.

  "runCommand": {
    "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./artifact.ps1 -StringParam ''', parameters('stringParam'), ''' -SecureStringParam (ConvertTo-SecureString ''', parameters('securestringParam'), ''' -AsPlainText -Force) -IntParam ', parameters('intParam'), ' -BoolParam:$', parameters('boolParam'), ' -FileContentsParam ''', parameters('fileContentsParam'), ''' -ExtraLogLines ', parameters('extraLogLines'), ' -ForceFail:$', parameters('forceFail'), '\"')]"
  }

Betik kullanıcı hata ayıklaması için çıkış yakaladığından, gizli dizileri konsolda günlüğe kaydetmeyin.

Yapıt ifadeleri ve işlevleri

Yapıt yükleme komutunu oluşturmak için ifadeleri ve işlevleri kullanabilirsiniz. İfadeler, yapıt yüklendiğinde değerlendirilir. İfadeler bir JSON dize değerinde herhangi bir yerde görünebilir ve her zaman başka bir JSON değeri döndürebilir. İfadeleri köşeli ayraç içine alın, [ ]. Köşeli ayraçla başlayan bir sabit dize kullanmanız gerekiyorsa, iki köşeli ayraç [[ kullanın.

Genellikle bir değer oluşturmak için işlevlerle ifadeler kullanırsınız. İşlev çağrıları olarak functionName(arg1, arg2, arg3)biçimlendirilir.

Yaygın işlevler şunlardır:

İşlev Açıklama
parameters(parameterName) Yapıt komutu çalıştırıldığında sağlamak için bir parametre değeri döndürür.
concat(arg1, arg2, arg3, ...) Birden çok dize değerini birleştirir. Bu işlev çeşitli bağımsız değişkenler alabilir.

Aşağıdaki örnek, bir değer oluşturmak için ifadeleri ve işlevleri kullanır:

  runCommand": {
      "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./startChocolatey.ps1'
  , ' -RawPackagesList ', parameters('packages')
  , ' -Username ', parameters('installUsername')
  , ' -Password ', parameters('installPassword'))]"
  }

Özel yapıt oluşturma

Özel yapıt oluşturmak için:

  • Yapıt tanım dosyalarıyla çalışmak için bir JSON düzenleyicisi yükleyin. Visual Studio Code Windows, Linux ve macOS için kullanılabilir.

  • Örnek artifactfile.json tanım dosyasıyla başlayın.

    Genel DevTest Labs yapıt deposunda kullanabileceğiniz zengin bir yapıt kitaplığı vardır. Bir yapıt tanım dosyasını indirebilir ve kendi yapıtlarınızı oluşturmak için özelleştirebilirsiniz.

    Bu makalede artifactfile.json tanım dosyası ve artifact.ps1 PowerShell betiği kullanılır https://github.com/Azure/azure-devtestlab/tree/master/Artifacts/windows-test-paramtypes.

  • Yapıt tanım dosyası oluşturmak için kullanabileceğiniz geçerli öğeleri ve değer seçeneklerini görmek için IntelliSense'i kullanın. Örneğin, öğesini düzenlerken targetOsType IntelliSense size Windows veya Linux seçenekleri gösterir.

  • Yapıtlarınızı genel veya özel Git yapıt depolarında depolayın.

    • Her artifactfile.json yapıt tanım dosyasını yapıt adıyla aynı adlı ayrı bir dizinde depolayın.
    • Yükleme komutunun başvurduğunu betikleri yapıt tanım dosyasıyla aynı dizinde depolayın.

    Aşağıdaki ekran görüntüsünde örnek bir yapıt klasörü gösterilmektedir:

    Örnek yapıt klasörünü gösteren ekran görüntüsü.

  • Özel yapıtlarınızı genel DevTest Labs yapıt deposunda depolamak için depoda bir çekme isteği açın.

  • Özel yapıt deponuzu laboratuvara eklemek için bkz. DevTest Labs'de laboratuvarınıza yapıt deposu ekleme.

Sonraki adımlar