Vytváření vlastních artefaktů pro DevTest Labs

Tento článek popisuje, jak vytvořit soubory vlastních artefaktů pro Azure DevTest Labs virtuálních počítačů. Artefakty DevTest Labs určují akce, které se mají provést při zřízení virtuálního počítače. Artefakt se skládá ze souboru definice artefaktu a dalších souborů skriptu, které uložíte do složky v úložišti Git.

Definiční soubory artefaktů

Definiční soubory artefaktů jsou výrazy JSON, které určují, co chcete na virtuální počítač nainstalovat. Soubory definují název artefaktu, příkaz ke spuštění a dostupné parametry příkazu. V definičním souboru artefaktu můžete odkazovat na jiné soubory skriptu podle názvu.

Následující příklad ukazuje oddíly, které tvoří základní strukturu definičního souboru artefaktů artifactfile.json :

  {
    "$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": ""
    }
  }
Název elementu Popis
$schema Umístění souboru schématu JSON Soubor schématu JSON vám může pomoct otestovat platnost definičního souboru.
title Název artefaktu, který se má zobrazit v testovacím prostředí. Požadované.
description Popis artefaktu, který se má zobrazit v testovacím prostředí. Požadované.
iconUri Identifikátor URI ikony artefaktu, který se má zobrazit v testovacím prostředí.
targetOsType Operační systém virtuálního počítače, na který se má artefakt nainstalovat. Podporované hodnoty: Windows, Linux. Požadované.
parameters Hodnoty pro přizpůsobení artefaktu při instalaci na virtuální počítač
runCommand Příkaz pro instalaci artefaktu, který se spustí na virtuálním počítači. Požadované.

Parametry artefaktů

V části parameters souboru definice zadejte hodnoty, které může uživatel zadat při instalaci artefaktu. Na tyto hodnoty můžete odkazovat v příkazu artifact install.

K definování parametrů použijte následující strukturu:

  "parameters": {
    "<parameterName>": {
      "type": "<type-of-parameter-value>",
      "displayName": "<display-name-of-parameter>",
      "description": "<description-of-parameter>"
    }
  }
Název elementu Popis
type Typ hodnoty parametru Požadované.
displayName Název parametru, který se má zobrazit uživateli testovacího prostředí. Požadované.
description Popis parametru, který se má zobrazit uživateli testovacího prostředí. Požadované.

Povolené typy hodnot parametrů jsou:

Typ Popis
string Libovolný platný řetězec JSON
int Jakékoli platné celé číslo JSON
bool Libovolná platná logická hodnota JSON
array Jakékoli platné pole JSON

Tajné kódy jako zabezpečené řetězce

Pokud chcete deklarovat tajné kódy jako parametry zabezpečeného řetězce s maskovanými znaky v uživatelském rozhraní, použijte v parameters části souboru artifactfile.json následující syntaxi:


    "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
    },

Příkaz artifact install ke spuštění skriptu PowerShellu převezme zabezpečený řetězec vytvořený příkazem ConvertTo-SecureString .

  "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'), '\"')]"
  }

Neprodávejte protokolování tajných kódů do konzoly, protože skript zachycuje výstup pro ladění uživatelů.

Výrazy a funkce artefaktů

K vytvoření příkazu artifact install můžete použít výrazy a funkce. Výrazy se vyhodnocují při instalaci artefaktu. Výrazy se můžou objevit kdekoli v řetězcové hodnotě JSON a vždy vrátit jinou hodnotu JSON. Uzavřete výrazy do hranatých závorek, [ ]. Pokud potřebujete použít řetězec literálu, který začíná hranatou závorkou, použijte dvě hranaté závorky [[.

K vytvoření hodnoty se obvykle používají výrazy s funkcemi. Volání funkcí jsou formátovaná jako functionName(arg1, arg2, arg3).

Mezi běžné funkce patří:

Funkce Popis
parameters(parameterName) Vrátí hodnotu parametru, která se má zadat při spuštění příkazu artefaktu.
concat(arg1, arg2, arg3, ...) Kombinuje více řetězcových hodnot. Tato funkce může přijímat různé argumenty.

Následující příklad používá výrazy a funkce k vytvoření hodnoty:

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

Vytvoření vlastního artefaktu

Vytvoření vlastního artefaktu:

  • Nainstalujte editor JSON pro práci se soubory definice artefaktů. Visual Studio Code je k dispozici pro Windows, Linux a macOS.

  • Začněte s ukázkovým definičním souborem artifactfile.json .

    Veřejné úložiště artefaktů DevTest Labs obsahuje bohatou knihovnu artefaktů, které můžete použít. Můžete si stáhnout definiční soubor artefaktů a přizpůsobit ho tak, aby vytvořil vlastní artefakty.

    Tento článek používá definiční soubor artifactfile.json a artifact.ps1 skript PowerShellu na adrese https://github.com/Azure/azure-devtestlab/tree/master/Artifacts/windows-test-paramtypes.

  • Pomocí technologie IntelliSense můžete zobrazit platné prvky a možnosti hodnot, které můžete použít k vytvoření definičního souboru artefaktů. Například při úpravě elementu targetOsType IntelliSense zobrazí vás Windows nebo Linux možnosti.

  • Ukládejte artefakty ve veřejných nebo privátních úložištích artefaktů Git.

    • Každý definiční soubor artefaktu artifactfile.json uložte do samostatného adresáře s názvem stejného názvu artefaktu.
    • Skripty, na které instalační příkaz odkazuje, uložte do stejného adresáře jako definiční soubor artefaktů.

    Následující snímek obrazovky ukazuje ukázkovou složku artefaktů:

    Snímek obrazovky znázorňující ukázkovou složku artefaktů

  • Pokud chcete vlastní artefakty uložit do veřejného úložiště artefaktů DevTest Labs, otevřete žádost o přijetí změn v úložišti.

  • Pokud chcete přidat privátní úložiště artefaktů do testovacího prostředí, přečtěte si téma Přidání úložiště artefaktů do testovacího prostředí v DevTest Labs.

Další kroky