Ajánlott eljárások alkalmazása a tesztelési eszközkészlet-modul használatával

Befejeződött

Az Azure Resource Manager-sablonok (ARM-sablonok) fejlesztésekor többféleképpen is egyszerűbben hozhatunk létre érvényes sablonokat, és javaslatokat tehetünk a minőségük javítása érdekében. Mik ezek a javaslatok, és hogyan válhat a sablonok javára, ha betartja ezeket?

Különböző szinteken vannak javaslatok: a paraméterektől és a változóktól kezdve az erőforrásokra vonatkozó javaslatokig. Vizsgáljuk meg ezeket a javaslatokat átfogó szinten, és lássuk, mit nyerhetünk a betartásukkal:

  • Karbantarthatóság. A sablon fejlesztése során, a megírásától a frissítésein keresztül egyre nehezebbé feladattá válhat, hogy tiszta és rendezett formában tartsa azt. Ahogy a sablon növekszik, a paraméterek és a változók is. Fontos tisztában lenni ezek mindegyikének rendeltetésével, és a használatuk helyes módjával.

    Képzeljen el egy forgatókönyvet, amelyben egy paraméter neve rosszul van elnevezve, és nehezen tudja megérteni, hogy mit csinál. Vagy olyan rögzített értéket használ, ahol nem kellene, és ha valami megváltozik, az Azure-szolgáltatások leállnak. Mindezek a problémák hozzájárulnak ahhoz, hogy meg kell értenie, majd később el kell utasítania, amit keres. Az elnevezések során tanúsított fegyelem és a rend megőrzése segíthet az ilyen helyzetek következményeinek mérséklésében.

  • Helyesség. Megpróbálhat mindent helyesen elnevezni, de túl sok szabályt kell követnie. Az ilyen helyzetek olyan eszközt követelnek meg, amely emlékezteti önt ezekre a szabályokra és előírásokra, és kikényszeríti őket.

  • Rugalmasság. Biztosítania kell, hogy a sablonjai elég rugalmasak, és bármely helyzetben használhatók legyenek. Ha nem paraméterezi megfelelően a sablonokat, előfordulhat, hogy nem lehet újra felhasználni őket.

  • Bővíthetőség. Előfordulhat, hogy saját javaslatokat szeretne tenni. Előfordulhat, hogy a vállalata vagy csapata saját szabályokkal rendelkezik a betartatásukhoz.

Megjegyzés:

Az ilyen típusú javaslatokra vonatkozó kódellenőrzést lintingnek is nevezik.

Az ARM-sablon tesztelési eszközkészlete

Érdemes lehet egy tesztelési eszközt használni, hogy Ön az alkotásra összpontosíthasson abban a tudatban, hogy az eszköz minden problémát felfed, és jobb sablonokat eredményez. Létezik ilyen eszköz: az ARM-sablontesztelési eszközkészlet, más néven ARM-TTK. Ez egy tesztsorozat elvégzésével kezeli az említett problémákat. A tesztek az alábbi kategóriákba sorolhatók:

  • A felhasználói szándék ellenőrzése. Ez a kategória azt vizsgálja, hogy használatban van-e az összes deklarált változó és paraméter, és figyelmeztet, ha nem.
  • A biztonsági eljárások végrehajtása. Egy másik lényeges tényező annak biztosítása, hogy a sablon ne adjon vissza bizalmas adatot, például API-k titkos kódját.
  • A megfelelő nyelvi szerkezetek használata. Érdemes nyelvi konstrukciókat vagy segédfüggvényeket használni, hogy ne kelljen a kódba foglalt értékekre hagyatkoznia.

Megjegyzés:

Ezek nem követelmények, csak javaslatok. A betartásuk mégis nyomatékosan ajánlott.

Az eszköz telepítése

Az eszköz egy PowerShell-modul. A futtatáshoz kövesse az alábbi lépéseket:

  1. Telepítse a PowerShellt. Ezt Linux, Mac és Windows rendszeren más-más módon hajthatja végre.
  2. Töltse le a modult. A modul egy GitHub-adattárban található. Letöltheti onnan, vagy beszerezheti egy git clone paranccsal.
  3. Importálja a modult. Ez a lépés csak egy egysoros utasítás, amelyet egy PowerShell-munkamenetbe kell beírnia, amely elérhetővé teszi az ARM-TTK-parancsokat.

A következő leckében láthatja, hogyan teheti meg mindezt. Miután telepítette az eszközt, készen áll a tesztek futtatására a sablonon.

A tesztek futtatása

A tesztek futtatása magában foglalja a modul meghívását a megfelelő paraméterekkel. -TemplatePath egy kötelező paraméter, amely egy olyan sztringet vár, amely az üzembehelyezési sablonfájl helyére mutat. A sablonfájlnévnek vagy azuredeploy.jsonnak vagy maintemplate.jsonnak kell lennie. Egy jellemző tesztfuttatás tehát az alábbi parancshoz lehet hasonló:

Test-AzTemplate -TemplatePath path/to/template

Az eszköz teszteli a sablonfájlt, és teszteli az ugyanabban a könyvtárban és annak almappáiban található sablonfájlokat is.

Egy tesztfuttatás tipikus kimenete az alábbihoz lehet hasonló:

[+] adminUsername Should Not Be A Literal (24 ms)
[+] apiVersions Should Be Recent (18 ms)
[+] artifacts parameter (16 ms)
[+] DeploymentTemplate Schema Is Correct (17 ms)
[+] IDs Should Be Derived From ResourceIDs (15 ms)
[-] Location Should Not Be Hardcoded (41 ms)
     azuredeploy.json must use the location parameter, not resourceGroup().location (except when used as a default value in the main template)

A sikeres tesztek zöld színnel vannak kódolva, és az előtagjuk.[+] A sikertelen tesztek pirosra vannak kódolva az előtaggal [-].

A tesztfuttatás konfigurálása tesztparaméterekkel

Eddig láthatta, hogy az eszköz futtatásakor kötelező megadni a paramétert -TemplatePath . Az eszköz opcionális paramétereket is elfogad. Ezek a paraméterek teszik lehetővé meghatározott fájlok vagy tesztek futtatását. Ezeknek a paramétereknek a használatával részletesebben szabályozhatja a sablonok készítését és a hibakeresést.

A paraméter -File egy adott fájl futtatására szolgál. A paraméter -Test lehetővé teszi egy futtatandó tesztforgatókönyv megadását.

A paramétereket a következő módokon használhatja:

  • Tesztek futtatása egyetlen fájlon. Előfordulhat, hogy a teszteket csak egyetlen fájlon szeretné futtatni, amelyen éppen dolgozik. Ezt az indokolja, hogy így könnyebben összpontosíthat egy adott sablonfájl megírására. Egy további előnye, hogy a kimenet kevesebb zajt tartalmaz, és csak azt mutatja meg, ami Önt érdekli. Ha a -File paramétert egy fájl elérési útjával (beleértve a fájlnevet is) használja, a teszteket csak azon a fájlon futtathatja.

    Fontos

    A paraméter továbbra is azt várja, hogy az azuredeploy.json vagy a maintemplate.json létezzen a megadott helyen.

  • Egyetlen teszttípus futtatása az összes fájlon. Előfordulhat, hogy csak egyetlen típusú tesztet szeretne lefuttatni, ezzel biztosítva, hogy teljesülnek az adott forgatókönyv feltételei. Ezt a feladatot a paraméterrel -Testvégezheti el. A paraméter idézőjelekben várja a teszt teljes nevét; például az erőforrásoknak helyük kell, hogy legyen.