Egyéni összetevők létrehozása a DevTest Labshez
Ez a cikk azt ismerteti, hogyan hozhat létre egyéni összetevőfájlokat Azure DevTest Labs virtuális gépekhez. A DevTest Labs-összetevők megadják a virtuális gép kiépítéséhez szükséges műveleteket. Az összetevő egy összetevődefiníciós fájlból és más szkriptfájlokból áll, amelyeket egy Git-adattár mappájában tárol.
- További információ az összetevő-adattárak tesztkörnyezetekhez való hozzáadásáról: Összetevő-adattár hozzáadása a tesztkörnyezethez.
- További információ a létrehozott összetevők virtuális gépekhez való hozzáadásáról: Összetevők hozzáadása a DevTest Labs virtuális gépekhez.
- További információ az összes tesztkörnyezeti virtuális géphez hozzáadandó kötelező összetevők megadásáról: Kötelező összetevők megadása DevTest Labs virtuális gépekhez.
Összetevő-definíciós fájlok
Az összetevő-definíciós fájlok olyan JSON-kifejezések, amelyek meghatározzák, hogy mit szeretne telepíteni egy virtuális gépre. A fájlok határozzák meg egy összetevő nevét, egy futtatandó parancsot és a parancshoz elérhető paramétereket. Az összetevő-definíciós fájlban név szerint hivatkozhat más szkriptfájlokra.
Az alábbi példa az artifactfile.json összetevődefiníciós fájl alapstruktúráját alkotó szakaszokat mutatja be:
{
"$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": ""
}
}
Elem neve | Leírás |
---|---|
$schema |
A JSON-sémafájl helye. A JSON-sémafájl segíthet a definíciós fájl érvényességének tesztelésében. |
title |
A laborban megjelenítendő összetevő neve. Szükséges. |
description |
A laborban megjelenítendő összetevő leírása. Szükséges. |
iconUri |
A laborban megjelenítendő összetevő ikon URI-ja. |
targetOsType |
A virtuális gép operációs rendszere az összetevő telepítéséhez. Támogatott értékek: Windows , Linux .
Szükséges. |
parameters |
A virtuális gépre való telepítéskor testre szabandó értékek. |
runCommand |
A virtuális gépen végrehajtandó összetevő telepítési parancsa. Szükséges. |
Összetevő paraméterei
A definíciós fájl paraméterek szakaszában adja meg, hogy a felhasználó milyen értékeket adhat meg az összetevő telepítésekor. Ezekre az értékekre az összetevő telepítési parancsában hivatkozhat.
Paraméterek meghatározásához használja a következő struktúrát:
"parameters": {
"<parameterName>": {
"type": "<type-of-parameter-value>",
"displayName": "<display-name-of-parameter>",
"description": "<description-of-parameter>"
}
}
Elem neve | Leírás |
---|---|
type |
Paraméterérték típusa. Szükséges. |
displayName |
A tesztkörnyezet felhasználója számára megjelenítendő paraméter neve. Szükséges. |
description |
A tesztkörnyezet felhasználója számára megjelenítendő paraméter leírása. Szükséges. |
Az engedélyezett paraméterérték-típusok a következők:
Típus | Description |
---|---|
string |
Bármely érvényes JSON-sztring |
int |
Bármely érvényes JSON-egész szám |
bool |
Bármely érvényes JSON-logikai érték |
array |
Bármely érvényes JSON-tömb |
Titkos kódok biztonságos sztringként
Ha titkos kódokat szeretne biztonságos sztringparaméterként deklarálni maszkolt karakterekkel a felhasználói felületen, használja az artifactfile.json fájl szakaszának parameters
következő szintaxisát:
"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
},
A PowerShell-szkript futtatására szolgáló összetevő telepítési parancsa a paranccsal létrehozott biztonságos sztringet ConvertTo-SecureString
használja.
"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'), '\"')]"
}
Ne naplózza a titkos kódokat a konzolon, mert a szkript rögzíti a felhasználói hibakeresés kimenetét.
Összetevő-kifejezések és -függvények
Kifejezések és függvények használatával létrehozhatja az összetevő telepítési parancsát. A kifejezések kiértékelik, hogy mikor telepíti az összetevőt. A kifejezések bárhol megjelenhetnek egy JSON-sztringértékben, és mindig egy másik JSON-értéket ad vissza. A kifejezéseket szögletes zárójelek közé kell foglalni: [ ]. Ha egy szögletes zárójellel kezdődő literális sztringet kell használnia, használjon két szögletes zárójelet [[.
Általában függvényekkel rendelkező kifejezéseket használunk egy érték létrehozásához. A függvényhívások formátuma : functionName(arg1, arg2, arg3)
.
A gyakori függvények a következők:
Függvény | Leírás |
---|---|
parameters(parameterName) |
Egy paraméterértéket ad vissza, amely az összetevő parancsának futtatásakor lesz megadva. |
concat(arg1, arg2, arg3, ...) |
Több sztringértéket egyesít. Ez a függvény különböző argumentumokat vehet fel. |
Az alábbi példa kifejezéseket és függvényeket használ egy érték létrehozásához:
runCommand": {
"commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./startChocolatey.ps1'
, ' -RawPackagesList ', parameters('packages')
, ' -Username ', parameters('installUsername')
, ' -Password ', parameters('installPassword'))]"
}
Egyéni összetevő létrehozása
Egyéni összetevő létrehozása:
Telepítsen egy JSON-szerkesztőt az összetevődefiníciós fájlok használatához. A Visual Studio Code Windows, Linux és macOS rendszeren érhető el.
Kezdje egy artifactfile.json definíciós fájllal.
A nyilvános DevTest Labs-összetevő-adattárban számos használható összetevőtár található. Letölthet egy összetevődefiníciós fájlt, és testre szabhatja, hogy saját összetevőket hozzon létre.
Ez a cikk az artifactfile.json definíciós fájlt és artifact.ps1 PowerShell-szkriptet használja a címen https://github.com/Azure/azure-devtestlab/tree/master/Artifacts/windows-test-paramtypes.
Az IntelliSense használatával megtekintheti az összetevők definíciós fájljának létrehozásához használható érvényes elemeket és értékbeállításokat. Ha például szerkessze az elemet, az
targetOsType
IntelliSense megjeleníti ÖntWindows
vagyLinux
a beállításokat.Az összetevőket nyilvános vagy privát Git-összetevő-adattárakban tárolhatja.
- Minden artifactfile.json összetevődefiníciós fájlt egy külön könyvtárban tároljon, ugyanazzal a névvel, mint az összetevő neve.
- Tárolja azokat a szkripteket, amelyekre a telepítési parancs hivatkozik ugyanabban a könyvtárban, mint az összetevődefiníciós fájl.
Az alábbi képernyőképen egy példa összetevőmappa látható:
Ha az egyéni összetevőket a nyilvános DevTest Labs-összetevő-adattárban szeretné tárolni, nyisson meg egy lekéréses kérelmet az adattáron.
Ha hozzá szeretné adni a privát összetevő-adattárat egy tesztkörnyezethez, tekintse meg az Összetevő-adattár hozzáadása a tesztkörnyezethez a DevTest Labsben című témakört.