Bicep-modulok létrehozása és használata

Befejeződött

A modulok független Bicep-fájlok. Általában olyan erőforráskészleteket tartalmaznak, amelyek együtt vannak üzembe helyezve. A modulok bármely más Bicep-sablonból felhasználhatók.

A modulok használatával újra felhasználhatja a Bicep-kódot, és olvashatóbbá és érthetőbbé teheti a Bicep-fájlokat, mivel ezek mindegyike egy adott feladatra összpontosít. A fő sablonok ezután több modult is összeállítanak.

A modulok előnyei

A toy cégnél számos különálló Bicep-fájl használatával épít ki felhőerőforrásokat. Idővel ezek a sablonok jelentősen növekednek. Végül monolitikus kóddal rendelkezik, amely nehezen olvasható és navigálható, és még nehezebben karbantartható.

Ez a módszer arra is kényszeríti, hogy duplikálja a kód egyes részeit, amikor más sablonokban szeretné újra felhasználni. Ha módosít valamit, át kell keresnie és frissítenie kell több fájlt.

A Bicep-modulok segítenek ezeknek a kihívásoknak a megoldásában, ha a kódot kisebb, kezelhetőbb fájlokra osztja fel, amelyekre több sablon is hivatkozhat. A modulok kulcsfontosságú előnyöket nyújtanak.

Újrafelhasználhatóság

Miután létrehozott egy modult, több Bicep-fájlban is újra felhasználhatja, még akkor is, ha a fájlok különböző projektekhez vagy számítási feladatokhoz tartoznak. Ha például egy megoldást hoz létre, külön modulokat hozhat létre az alkalmazás összetevőihez, az adatbázishoz és a hálózattal kapcsolatos erőforrásokhoz. Ezután, amikor elkezd dolgozni egy hasonló hálózati követelményekkel rendelkező projekten, újra felhasználhatja a megfelelő modult.

Diagram that shows a template referencing three modules: application, database, and networking. The networking module is then reused in another template.

Akár a csapaton belül, a szervezeten belül vagy az Azure-közösséggel is megoszthatja a modulokat. További információ a Bicep-modulok megosztásáról egy későbbi Microsoft Learn-modulban.

Beágyazás

A modulok segítségével együtt tarthatja a kapcsolódó erőforrásdefiníciókat. Például egy Azure Functions-alkalmazás definiálásakor általában üzembe helyezi az alkalmazást, az alkalmazás üzemeltetési csomagját és az alkalmazás metaadataihoz tartozó tárfiókot. Ez a három összetevő külön van definiálva, de az erőforrások logikai csoportosítását jelentik, ezért érdemes lehet modulként definiálni őket.

Így a fő sablonnak nem kell tisztában lennie a függvényalkalmazás üzembe helyezésének részleteivel. Ez a modul feladata.

Összeállíthatóság

Miután létrehozott egy modulkészletet, összeírhatja őket. Létrehozhat például egy virtuális hálózatot üzembe helyező modult, és egy másik modult, amely egy virtuális gépet helyez üzembe. Az egyes modulok paramétereit és kimeneteit úgy határozhatja meg, hogy az egyikből átvehesse a fontos információkat, és elküldhesse a másiknak.

Diagram that shows a template referencing two modules and passing the output from one to the parameter of another.

Tipp.

Hasznos, ha a Bicep-modulokat építőelemként tekinti, amelyeket különböző módokon kombinálhat az üzemelő példányok támogatásához.

Funkciók

Előfordulhat, hogy bizonyos funkciók eléréséhez modulokat kell használnia. A modulok és hurkok együttes használatával például több erőforráskészletet is üzembe helyezhet. Modulok használatával is definiálhat erőforrásokat egyetlen üzemelő példány különböző hatóköreiben.

Modul létrehozása

A modul egy normál Bicep-fájl. Ugyanúgy fogja létrehozni, mint bármely más Bicep-fájlt.

Általában nem ajánlott modult létrehozni minden üzembe helyezendő erőforráshoz. A jó Bicep-modul általában több kapcsolódó erőforrást határoz meg. Ha azonban sok konfigurációval rendelkező összetett erőforrással rendelkezik, érdemes lehet egyetlen modult létrehozni az összetettség beágyazásához. Ezzel a módszerrel a fő sablonok egyszerűek és áttekinthetetlenek maradnak.

Meglévő Bicep-sablon felosztása modulokra

Létrehozhat egy nagy Bicep-sablont, majd dönthet úgy, hogy azt modulokra kell felosztani. Néha nyilvánvaló, hogyan kell felosztani egy nagy Bicep-fájlt. Előfordulhat, hogy olyan erőforráskészlettel rendelkezik, amely egyértelműen egy modulhoz tartozik. Máskor nem olyan egyszerű meghatározni a modulba csoportosítandó erőforrásokat.

A Bicep-vizualizáció segíthet a teljes Bicep-fájl perspektívába helyezésében. A vizualizációt a Visual Studio Code Bicep bővítménye tartalmazza.

A vizualizáció megtekintéséhez nyissa meg a Visual Studio Code Explorert, jelölje ki és tartsa lenyomva a Bicep-fájlt (vagy kattintson rá a jobb gombbal), majd válassza a Bicep-vizualizáció megnyitása lehetőséget. A vizualizáció a Bicep-fájlban lévő erőforrások grafikus ábrázolását jeleníti meg. Sorokat tartalmaz az erőforrások között a Bicep által észlelt függőségek megjelenítéséhez.

A vizualizáció segítségével feloszthatja a fájlokat. Gondolja át, hogy a vizualizáció szemlélteti-e az erőforrások fürtöit. Érdemes lehet ezeket a fürtöket egy modulba áthelyezni.

Fontolja meg például egy Bicep-fájl következő vizualizációjának használatát. Két különböző erőforráskészlet van definiálva. Érdemes lehet külön adatbázis - és hálózati modulokba csoportosítani őket.

Beágyazott modulok

A modulok tartalmazhatnak más modulokat is. Ezzel a beágyazási technikával létrehozhat néhány olyan modult, amely kis erőforráskészleteket helyez üzembe, majd ezeket nagyobb modulokba írja, amelyek az erőforrások összetett topológiáit határozzák meg. A sablon ezeket az elemeket üzembe helyezhető összetevővé egyesíti.

Tipp.

Bár több modulréteget is be lehet ágyazni, ez összetetté válhat. Ha hibaüzenetet kap, vagy valami más hiba lép fel, nehezebb kitalálni, hogy mit kell kijavítania, ha sok rétegben van beágyazás.

Összetett üzemelő példányok esetén néha érdemes üzembehelyezési folyamatokat használni több sablon üzembe helyezéséhez ahelyett, hogy egyetlen sablont hoz létre, amely mindent a beágyazással végez. Az üzembehelyezési folyamatokkal kapcsolatos további tudnivalókat egy későbbi Microsoft Learn-modulban ismerheti meg.

Jó fájlnevek kiválasztása

Minden modulhoz használjon leíró fájlnevet. A fájlnév gyakorlatilag a modul azonosítójává válik. Fontos, hogy munkatársai csak a fájlnév megtekintésével megértsék a modul célját.

A modul használata Bicep-sablonban

Egy Bicep-sablonban lévő modult fog használni a module kulcsszóval, például a következővel:

module appModule 'modules/app.bicep' = {
  name: 'myApp'
  params: {
    location: location
    appServiceAppName: appServiceAppName
    environmentType: environmentType
  }
}

A moduldefiníciók a következő összetevőket tartalmazzák:

  • Az module kulcsszóból.
  • Egy szimbolikus név, például appModule. Ezt a nevet használja ebben a Bicep-fájlban, amikor a modulra szeretne hivatkozni. A szimbolikus név soha nem jelenik meg az Azure-ban.
  • A modul elérési útja, például modules/app.bicep. Ez általában egy Bicep-fájl elérési útja a helyi fájlrendszerben. Egy jövőbeli Microsoft Learn-modulban megtudhatja, hogyan oszthat meg modulokat a saját modulútvonal-formátumokkal rendelkező regisztrációs és sablon-specifikációk használatával.

    Tipp.

    JSON Azure Resource Manager-sablont (ARM-sablont) is használhat modulként. Ez a képesség akkor lehet hasznos, ha olyan sablonkészlettel rendelkezik, amelyet még nem migrált a Bicep-be.

  • Az name üzembe helyezés nevét meghatározó tulajdonság. Az üzembe helyezésekről a következő szakaszban olvashat bővebben.
  • A params tulajdonság, ahol megadhatja a modul által várt paraméterek értékeit. A modulparaméterekről a következő leckében olvashat bővebben.

A modulok működése

A modulok működésének megértése nem szükséges a használatukhoz, de segíthet kivizsgálni az üzemelő példányokkal kapcsolatos problémákat, vagy elmagyarázni a váratlan viselkedést.

Deployments

Az Azure-ban az üzembe helyezés egy speciális erőforrás, amely egy üzembe helyezési műveletet jelöl. Az üzemelő példányok olyan Azure-erőforrások, amelyek erőforrástípussal Microsoft.Resources/deploymentsrendelkeznek. Bicep-telepítés elküldésekor létre kell hoznia vagy frissítenie kell egy központi telepítési erőforrást. Hasonlóképpen, amikor erőforrásokat hoz létre az Azure Portalon, a portál létrehoz egy üzembehelyezési erőforrást az Ön nevében.

Az Azure-erőforrások módosításai azonban nem hoznak létre vagy használnak üzembe helyezéseket. Ha például az Azure Portal használatával módosít egy meglévő erőforrást, az általában nem hoz létre üzembe helyezést a módosítás elvégzéséhez. Ha külső eszközöket, például a Terraformot használ az erőforrások üzembe helyezéséhez vagy konfigurálásához, előfordulhat, hogy ezek nem hoznak létre üzembe helyezéseket.

Ha Bicep-fájlt helyez üzembe az Azure CLI vagy az Azure PowerShell használatával, opcionálisan megadhatja az üzembe helyezés nevét. Ha nem ad meg nevet, az Azure CLI vagy az Azure PowerShell automatikusan létrehoz egy üzembe helyezési nevet a sablon fájlnevéből. Ha például egy main.bicep nevű fájlt helyez üzembe, az alapértelmezett telepítési név a következőmain.

Modulok használatakor a Bicep minden modulhoz külön üzembe helyezést hoz létre. A name modulhoz megadott tulajdonság lesz az üzembe helyezés neve. Egy modult tartalmazó Bicep-fájl üzembe helyezésekor több üzembehelyezési erőforrás jön létre: egyet a szülősablonhoz, egyet pedig minden modulhoz.

Tegyük fel például, hogy létrehoz egy main.bicep nevű Bicep-fájlt. myAppEgy . A main.bicep fájl üzembe helyezésekor két központi telepítés jön létre. Az első neve el van nevezve main, és létrehoz egy másik üzembe helyezést myApp , amely tartalmazza az alkalmazás erőforrásait.

Diagram that shows two Bicep files, each of which has a separate deployment name.

Az üzembehelyezési erőforrások részleteit listázhatja és megtekintheti a Bicep-üzemelő példányok állapotának figyeléséhez vagy az üzembe helyezési előzmények megtekintéséhez. Ha azonban ugyanazt a nevet használja egy üzembe helyezéshez, az Azure felülírja az utolsó üzembe helyezést ugyanazzal a névvel. Ha meg kell őriznie az üzembe helyezési előzményeket, győződjön meg arról, hogy minden üzembe helyezéshez egyedi nevet használ. A névben szerepelhet az üzembe helyezés dátuma és időpontja, hogy egyedi legyen.

Létrehozott JSON ARM-sablonok

Bicep-fájl üzembe helyezésekor a Bicep JSON ARM-sablonná alakítja át. Ezt az átalakítást transzpilálásnak is nevezik. A sablon által használt modulok a JSON-fájlba vannak beágyazva. Függetlenül attól, hogy hány modult tartalmaz a sablon, a rendszer csak egyetlen JSON-fájlt hoz létre.

Az előző szakaszban tárgyalt példában a Bicep egyetlen JSON-fájlt hoz létre annak ellenére, hogy eredetileg két Bicep-fájl volt.

Diagram that shows two Bicep files, which are transpiled into a single JSON file.