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.
- Informace o přidávání úložišť artefaktů do testovacích prostředí najdete v tématu Přidání úložiště artefaktů do testovacího prostředí.
- Informace o přidávání artefaktů, které vytvoříte do virtuálních počítačů, najdete v tématu Přidání artefaktů do virtuálních počítačů DevTest Labs.
- Informace o určení povinných artefaktů, které se mají přidat do všech virtuálních počítačů testovacího prostředí, najdete v tématu Určení povinných artefaktů pro virtuální počítače DevTest Labs.
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ásWindows
neboLinux
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ů:
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.