Share via


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.

Ö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 Önt Windows vagy Linux 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ó:

    Képernyőkép egy példa összetevőmappáról.

  • 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.

Következő lépések