Migrace prostředků Azure a šablon ARM JSON pro použití Bicep
Definování prostředků Azure v Bicep má mnoho výhod, včetně jednodušší syntaxe, modularizace, automatické správy závislostí, ověřování typů IntelliSense a vylepšeného prostředí pro vytváření.
Při migraci existujících šablon Azure Resource Manageru (šablon ARM) do Bicep doporučujeme postupovat podle pětifázového pracovního postupu:
Prvním krokem v procesu je zachycení počáteční reprezentace prostředků Azure. V případě potřeby pak dekompilujete soubor JSON na počáteční soubor Bicep, který se zlepší refaktoringem. Když máte pracovní soubor, otestujete a nasadíte ho pomocí procesu, který minimalizuje riziko zásadních změn ve vašem prostředí Azure.
V tomto článku shrnujeme tento doporučený pracovní postup. Další pokyny najdete v tématu Migrace prostředků Azure a šablon JSON ARM pro použití modulu Bicep Learn.
Fáze 1: Převod
Ve fázi převodu migrace prostředků do Bicep je cílem zachytit počáteční reprezentaci vašich prostředků Azure. Soubor Bicep, který vytvoříte v této fázi, není dokončený a není připravený k použití. Soubor vám ale poskytne výchozí bod pro migraci.
Fáze převodu se skládá ze dvou kroků, které dokončíte postupně:
Zachyťte reprezentaci vašich prostředků Azure. Pokud máte existující šablonu JSON, kterou převádíte na Bicep, je první krok snadný – už máte zdrojovou šablonu. Pokud převádíte prostředky Azure nasazené pomocí portálu nebo jiného nástroje, musíte zaznamenat definice prostředků. Reprezentaci prostředků ve formátu JSON můžete zaznamenat pomocí webu Azure Portal, Azure CLI nebo rutin Azure PowerShellu k exportu jednotlivých prostředků, více prostředků a celých skupin prostředků. Pomocí příkazu v editoru
Insert Resource
Visual Studio Code můžete importovat reprezentaci prostředku Azure Bicep.V případě potřeby převeďte reprezentaci JSON na Bicep pomocí příkazu decompile.Nástroje Bicep zahrnují
decompile
příkaz pro převod šablon. Příkaz můžete vyvolat z editorudecompile
Visual Studio Code pomocí rozšíření Bicep, Azure CLI nebo rozhraní příkazového řádku Bicep. Proces dekompilace je proces s nejlepším úsilím a nezaručuje úplné mapování z JSON na Bicep. Před použitím souboru k nasazení prostředků možná budete muset upravit vygenerovaný soubor Bicep tak, aby vyhovoval osvědčeným postupům šablony.
Poznámka:
Prostředek můžete importovat otevřením palety příkazů editoru Visual Studio Code. Stiskněte kombinaci kláves Ctrl+Shift+P ve Windows a Linuxu a ⌘+Shift+P v macOS.
Visual Studio Code umožňuje vložit JSON jako Bicep. Další informace najdete v tématu Vložení JSON jako příkazu Bicep.
Fáze 2: Migrace
Ve fázi migrace prostředků do Bicep je cílem vytvořit první koncept nasazovatelného souboru Bicep a zajistit, aby se definovaly všechny prostředky Azure, které jsou v rozsahu migrace.
Fáze migrace se skládá ze tří kroků, které dokončíte postupně:
Vytvořte nový prázdný soubor Bicep. Je vhodné vytvořit úplně nový soubor Bicep. Soubor, který jste vytvořili ve fázi převodu, je referenčním bodem, na který se můžete podívat, ale neměli byste ho považovat za konečný nebo ho nasadit tak, jak je.
Zkopírujte každý prostředek z dekompilované šablony. Každý prostředek zkopírujte jednotlivě z převedeného souboru Bicep do nového souboru Bicep. Tento proces vám pomůže vyřešit všechny problémy na základě jednotlivých prostředků a vyhnout se nejasnostem při rostoucí velikosti šablony.
Identifikujte a znovu vytvořte všechny chybějící prostředky. Ne všechny typy prostředků Azure je možné exportovat prostřednictvím webu Azure Portal, Azure CLI nebo Azure PowerShellu. Například rozšíření virtuálních počítačů, jako jsou DependencyAgentWindows a MMAExtension (Microsoft Monitoring Agent), nejsou podporované typy prostředků pro export. Pro všechny prostředky, které nebyly exportovány, jako jsou rozšíření virtuálních počítačů, musíte tyto prostředky znovu vytvořit v novém souboru Bicep. Prostředky můžete znovu vytvořit pomocí různých nástrojů a přístupů, včetně Azure Resource Exploreru, referenční dokumentace k šabloně Bicep a ARM a webu šablon Rychlý start Azure.
Fáze 3: Refaktoring
Ve fázi refaktoringu migrace prostředku na Bicep je cílem zlepšit kvalitu kódu Bicep. Tato vylepšení můžou zahrnovat změny, jako je přidání komentářů ke kódu, které odpovídají šabloně standardům šablony.
Fáze nasazení se skládá z osmi kroků, které dokončíte v libovolném pořadí:
Zkontrolujte verze rozhraní API prostředků. Při exportu prostředků Azure nemusí exportovaná šablona obsahovat nejnovější verzi rozhraní API pro typ prostředku. Pokud existují specifické vlastnosti, které potřebujete pro budoucí nasazení, aktualizujte rozhraní API na příslušnou verzi. Doporučujeme zkontrolovat verze rozhraní API pro každý exportovaný prostředek.
Projděte si návrhy linteru v novém souboru Bicep. Když použijete rozšíření Bicep pro Visual Studio Code k vytváření souborů Bicep, spustí se linter Bicep automaticky a zvýrazní návrhy a chyby v kódu. Mnoho návrhů a chyb obsahuje možnost použít rychlou opravu problému. Projděte si tato doporučení a upravte soubor Bicep.
Revidují parametry, proměnné a symbolické názvy. Je možné, že názvy parametrů, proměnných a symbolických názvů vygenerovaných dekompilerem neodpovídají vaší standardní konvenci vytváření názvů. Zkontrolujte vygenerované názvy a podle potřeby proveďte úpravy.
Zjednodušte výrazy. Proces dekompilu nemusí vždy využívat některé funkce Bicep. Zkontrolujte všechny výrazy vygenerované v převodu a zjednodušte je. Dekompilovaná šablona může například obsahovat
concat()
funkci neboformat()
funkci, která by mohla být zjednodušena pomocí interpolace řetězců. Projděte si případné návrhy z linteru a podle potřeby proveďte úpravy.Zkontrolujte podřízené a rozšiřující prostředky. V Bicep můžete deklarovat podřízené prostředky a rozšiřující prostředky, včetně zřetězení názvů prostředků, použití klíčového
parent
slova a použití vnořených prostředků. Zvažte kontrolu těchto prostředků po dekompilace a ujistěte se, že struktura splňuje vaše standardy. Ujistěte se například, že nepoužíváte zřetězení řetězců k vytvoření podřízených názvů prostředků – měli byste použítparent
vlastnost nebo vnořený prostředek. Podobně lze podsítě odkazovat buď jako na vlastnosti virtuální sítě, nebo jako samostatný prostředek.Modularizovat. Pokud převádíte šablonu, která obsahuje mnoho prostředků, zvažte rozdělení jednotlivých typů prostředků na moduly kvůli jednoduchosti. Moduly Bicep pomáhají snížit složitost nasazení a zvýšit použitelnost kódu Bicep.
Poznámka:
Šablony JSON je možné použít jako moduly v nasazení Bicep. Bicep dokáže rozpoznat moduly JSON a odkazovat na ně podobně jako na moduly Bicep.
Přidejte komentáře a popisy. Dobrý kód Bicep je samodokumentování. Bicep umožňuje přidávat do kódu komentáře a
@description()
atributy, které vám pomůžou dokumentovat infrastrukturu. Bicep podporuje jednořádkové komentáře pomocí//
sekvence znaků a víceřádkových komentářů, které začínají znakem/*
a končí znakem*/
. Komentáře můžete přidat do konkrétních řádků v kódu a pro oddíly kódu.Postupujte podle osvědčených postupů Bicep. Ujistěte se, že soubor Bicep odpovídá standardním doporučením. Projděte si referenční dokument osvědčených postupů Bicep, kde najdete informace o tom, co jste možná vynechali.
Fáze 4: Testování
Ve fázi testování migrace prostředků do Bicep je cílem ověřit integritu migrovaných šablon a provést testovací nasazení.
Testovací fáze se skládá ze dvou kroků, které dokončíte postupně:
Spusťte operaci citlivostní operace nasazení šablony ARM. Pokud chcete před nasazením ověřit převedené šablony, můžete použít operaci citlivostní operace nasazení šablony Azure Resource Manageru. Porovná aktuální stav vašeho prostředí s požadovaným stavem definovaným v šabloně. Nástroj vypíše seznam změn, ke kterým dojde bez použití změn ve vašem prostředí. Citlivostní operace můžete použít s nasazením přírůstkového i kompletního režimu. I když plánujete nasadit šablonu pomocí přírůstkového režimu, je vhodné spustit operaci citlivostní analýzy v úplném režimu.
Proveďte testovací nasazení. Před zavedením převedené šablony Bicep do produkčního prostředí zvažte spuštění několika testovacích nasazení. Pokud máte více prostředí (například vývoj, testování a produkční prostředí), možná budete chtít šablonu nejprve nasadit do některého z neprodukčních prostředí. Po nasazení porovnejte původní prostředky s novými nasazeními prostředků kvůli zajištění konzistence.
Fáze 5: Nasazení
Ve fázi nasazení migrace prostředků do Bicep je cílem nasadit konečný soubor Bicep do produkčního prostředí.
Fáze nasazení se skládá ze čtyř kroků, které dokončíte postupně:
Připravte plán vrácení zpět. Schopnost zotavit se z neúspěšného nasazení je zásadní. Vytvořte strategii vrácení zpět, pokud se do vašich prostředí zavádějí nějaké zásadní změny. Proveďte inventarizaci typů nasazených prostředků, jako jsou virtuální počítače, webové aplikace a databáze. Každou rovinu dat zdroje je potřeba také zvážit. Máte způsob, jak obnovit virtuální počítač a jeho data? Máte způsob, jak obnovit databázi po odstranění? Dobře vyvinutý plán vrácení zpět pomáhá udržet výpadek na minimum, pokud dojde k nějakým problémům z nasazení.
Spusťte operaci citlivostní operace proti produkčnímu prostředí. Před nasazením konečného souboru Bicep do produkčního prostředí spusťte operaci citlivostní analýzy v produkčním prostředí, ujistěte se, že používáte hodnoty produkčních parametrů, a zvažte dokumentování výsledků.
Ruční nasazení Pokud použijete převedenou šablonu v kanálu, jako je Azure DevOps nebo GitHub Actions, zvažte nejprve spuštění nasazení z místního počítače. Před začleněním do produkčního kanálu je vhodnější otestovat funkčnost šablony. Tímto způsobem můžete rychle reagovat, pokud dojde k problému.
Spusťte orientační testy. Po dokončení nasazení byste měli spustit řadu orientačních testů, abyste měli jistotu, že vaše aplikace nebo úloha správně fungují. Otestujte například, jestli je vaše webová aplikace přístupná prostřednictvím normálních přístupových kanálů, jako je veřejný internet nebo přes podnikovou síť VPN. U databází se pokuste o připojení k databázi a spusťte řadu dotazů. S virtuálními počítači se přihlaste k virtuálnímu počítači a ujistěte se, že jsou všechny služby v provozu.
Další kroky
Další informace o decompileru Bicep najdete v tématu JSON šablony ARM decompile do Bicep.