Vytváření a používání modulů Bicep

Dokončeno

Moduly jsou nezávislé soubory Bicep. Obvykle obsahují sady prostředků, které se nasazují společně. Moduly je možné využívat z jakékoli jiné šablony Bicep.

Pomocí modulů můžete znovu použít kód Bicep a soubory Bicep tak lépe čitelné a srozumitelnější, protože jsou zaměřené na konkrétní úlohu. Hlavní šablony pak společně vytvoří více modulů.

Výhody modulů

Ve vaší společnosti toy jste zřídili cloudové prostředky pomocí mnoha jednotlivých souborů Bicep. V průběhu času se tyto šablony výrazně zvětšují. Nakonec skončíte s monolitickým kódem, který se obtížně čte a prochází, a dokonce i obtížněji udržovat.

Tento přístup také vynutí duplikování částí kódu, když ho chcete znovu použít v jiných šablonách. Když něco změníte, musíte hledat a aktualizovat více souborů.

Moduly Bicep vám pomůžou tyto problémy vyřešit rozdělením kódu na menší a lépe spravovatelné soubory, na které může odkazovat více šablon. Moduly poskytují některé klíčové výhody.

Opětovná použitelnost

Po vytvoření modulu ho můžete znovu použít ve více souborech Bicep, i když jsou soubory pro různé projekty nebo úlohy. Například při sestavování jednoho řešení můžete vytvořit samostatné moduly pro komponenty aplikace, databázi a prostředky související se sítí. Když pak začnete pracovat na jiném projektu s podobnými požadavky na síť, můžete příslušný modul znovu použít.

Diagram znázorňující šablonu odkazující na tři moduly: aplikace, databáze a sítě Síťový modul se pak znovu použije v jiné šabloně.

Moduly můžete dokonce sdílet v rámci týmu, v rámci vaší organizace nebo s komunitou Azure. Další informace o sdílení modulů Bicep najdete v budoucím modulu Microsoft Learn.

Zapouzdření

Moduly pomáhají udržovat související definice prostředků pohromadě. Když například definujete aplikaci Azure Functions, obvykle nasadíte aplikaci, plán hostování aplikace a účet úložiště pro metadata aplikace. Tyto tři komponenty jsou definovány samostatně, ale představují logické seskupení prostředků, takže by mohlo být vhodné je definovat jako modul.

Díky tomu si hlavní šablona nemusí být vědoma podrobností o tom, jak se aplikace funkcí nasazuje. To je zodpovědnost modulu.

Možnosti sestavování

Po vytvoření sady modulů je můžete vytvořit společně. Můžete například vytvořit modul, který nasadí virtuální síť, a další modul, který nasadí virtuální počítač. Pro každý modul definujete parametry a výstupy, abyste mohli vzít důležité informace z jednoho modulu a odeslat je do druhého.

Diagram znázorňující šablonu odkazující na dva moduly a předání výstupu z jednoho do parametru jiného

Tip

Moduly Bicep si můžete představit jako stavební bloky, které můžete kombinovat různými způsoby podpory nasazení.

Funkce

Někdy může být potřeba použít moduly pro přístup k určitým funkcím. Pomocí modulů a smyček můžete například nasadit několik sad prostředků. Moduly můžete použít také k definování prostředků v různých oborech v jednom nasazení.

Vytvoření modulu

Modul je normální soubor Bicep. Vytvoříte ho stejně jako jakýkoli jiný soubor Bicep.

Obecně není vhodné vytvořit modul pro každý nasazený prostředek. Vhodný modul Bicep obvykle definuje více souvisejících prostředků. Pokud ale máte složitý prostředek s velkou konfigurací, může být vhodné vytvořit jeden modul pro zapouzdření složitosti. Tento přístup udržuje hlavní šablony jednoduché a přehledné.

Rozdělení existující šablony Bicep na moduly

Můžete vytvořit velkou šablonu Bicep a pak se rozhodnout, že by se měla rozdělit na moduly. Někdy je zřejmé, jak byste měli rozdělit velký soubor Bicep. Můžete mít sadu prostředků, které jasně patří do modulu. Jindy není tak jednoduché určit prostředky, které by se měly seskupit do modulu.

Vizualizér Bicep vám může pomoct umístit celý soubor Bicep do perspektivy. Vizualizér je součástí rozšíření Bicep pro Visual Studio Code.

Pokud chcete vizualizér zobrazit, otevřete Průzkumníka editoru Visual Studio Code, vyberte a podržte (nebo klikněte pravým tlačítkem) na soubor Bicep a pak vyberte Otevřít Vizualizér Bicep. Vizualizér zobrazuje grafické znázornění prostředků v souboru Bicep. Obsahuje řádky mezi prostředky, které ukazují závislosti, které Bicep detekuje.

Vizualizér vám pomůže rozdělit soubory. Zvažte, jestli vizualizace znázorňuje nějaké clustery prostředků. Může být vhodné přesunout tyto clustery do modulu společně.

Představte si například následující vizualizaci pro soubor Bicep. Jsou definovány dvě různé sady prostředků. Je vhodné je seskupit do samostatných databázových a síťových modulů.

Vnoření modulů

Moduly můžou obsahovat i jiné moduly. Pomocí této techniky vnoření můžete vytvořit některé moduly, které nasazují malé sady prostředků, a pak je vytvořit do větších modulů, které definují složité topologie prostředků. Šablona kombinuje tyto části do nasaditelného artefaktu.

Tip

I když je možné vnořit více vrstev modulů, které se můžou stát složitými. Pokud se zobrazí chyba nebo se něco jiného nepovede, je obtížnější vyřešit to, co je potřeba opravit, když máte mnoho vrstev vnoření.

U složitých nasazení někdy dává smysl používat kanály nasazení k nasazení více šablon místo vytvoření jedné šablony, která dělá všechno s vnořením. Další informace o kanálech nasazení najdete v budoucím modulu Microsoft Learn.

Volba vhodných názvů souborů

Nezapomeňte pro každý modul použít popisný název souboru. Název souboru se efektivně stane identifikátorem modulu. Je důležité, aby vaši kolegové rozuměli účelu modulu jen tak, že se podívá na název souboru.

Použití modulu v šabloně Bicep

Modul v šabloně Bicep použijete pomocí klíčového module slova, například takto:

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

Definice modulu zahrnuje následující komponenty:

  • Klíčové slovo module.
  • Symbolický název, například appModule. Tento název se používá v tomto souboru Bicep pokaždé, když chcete odkazovat na modul. Symbolický název se v Azure nikdy nezobrazí.
  • Cesta modulu, například modules/app.bicep. Obvykle se jedná o cestu k souboru Bicep v místním systému souborů. V budoucím modulu Microsoft Learn se dozvíte, jak můžete sdílet moduly pomocí registrů a specifikací šablon, které mají vlastní formáty cest modulů.

    Tip

    Jako modul můžete také použít šablonu Azure Resource Manageru (šablonu ARM) JSON. Tato možnost může být užitečná, pokud máte sadu šablon, které jste ještě nemigrovali do Bicep.

  • Vlastnost name , která určuje název nasazení. Další informace o nasazeních najdete v další části.
  • Vlastnost params , kde můžete zadat hodnoty pro parametry, které modul očekává. Další informace o parametrech modulu najdete v další lekci.

Jak moduly fungují

Pochopení toho, jak moduly fungují, nejsou pro jejich použití potřeba, ale můžou vám pomoct prozkoumat problémy s nasazeními nebo vysvětlit neočekávané chování.

Nasazení

V Azure je nasazení speciálním prostředkem, který představuje operaci nasazení. Nasazení jsou prostředky Azure, které mají typ Microsoft.Resources/deploymentsprostředku . Když odešlete nasazení Bicep, vytvoříte nebo aktualizujete prostředek nasazení. Podobně když vytváříte prostředky na webu Azure Portal, portál za vás vytvoří prostředek nasazení.

Ne všechny změny prostředků Azure ale vytvářejí nebo používají nasazení. Když například použijete Azure Portal k úpravě existujícího prostředku, obvykle nevytvoří nasazení, které by změnu udělalo. Pokud k nasazení nebo konfiguraci prostředků používáte nástroje třetích stran, jako je Terraform, nemusí vytvářet nasazení.

Když nasadíte soubor Bicep pomocí Azure CLI nebo Azure PowerShellu, můžete volitelně zadat název nasazení. Pokud nezadáte název, Azure CLI nebo Azure PowerShell automaticky vytvoří název nasazení z názvu souboru šablony. Pokud například nasadíte soubor s názvem main.bicep, výchozí název nasazení je main.

Při použití modulů vytvoří Bicep samostatné nasazení pro každý modul. Vlastnost name , kterou zadáte pro modul, se stane názvem nasazení. Když nasadíte soubor Bicep, který obsahuje modul, vytvoří se několik prostředků nasazení: jeden pro nadřazenou šablonu a jeden pro každý modul.

Předpokládejme například, že vytvoříte soubor Bicep s názvem main.bicep. Definuje modul s názvem myApp. Když nasadíte soubor main.bicep , vytvoří se dvě nasazení. První z nich má název maina vytvoří další nasazení s názvem myApp , které obsahuje prostředky vaší aplikace.

Diagram znázorňující dva soubory Bicep, z nichž každý má samostatný název nasazení

Můžete zobrazit a zobrazit podrobnosti o prostředcích nasazení, abyste mohli monitorovat stav nasazení Bicep nebo zobrazit historii nasazení. Pokud ale znovu použijete stejný název pro nasazení, Azure přepíše poslední nasazení stejným názvem. Pokud potřebujete zachovat historii nasazení, ujistěte se, že pro každé nasazení použijete jedinečný název. Do názvu můžete zahrnout datum a čas nasazení, aby bylo jedinečné.

Vygenerované šablony JSON ARM

Když nasadíte soubor Bicep, Bicep ho převede na šablonu JSON ARM. Tento převod se také nazývá transpilace. Moduly, které šablona používá, se vloží do souboru JSON. Bez ohledu na to, kolik modulů do šablony zahrnete, se vytvoří jenom jeden soubor JSON.

V příkladu probíraného v předchozí části vygeneruje Bicep jeden soubor JSON, i když byly původně dva soubory Bicep.

Diagram znázorňující dva soubory Bicep, které se překládají do jednoho souboru JSON