Co je šablona ARM?
Díky přechodu do cloudu si mnoho týmů přisoudí agilní metody vývoje. Tyto týmy provádějí opakované operace rychle. Potřebují opakovaně nasazovat svá řešení do cloudu a vědět, že mají infrastrukturu ve spolehlivém stavu. S tím, jak se infrastruktura stala součástí iterativního procesu, zmizelo rozdělení mezi provozem a vývojem. Teams spravovat kód infrastruktury a aplikací prostřednictvím sjednoceného procesu.
Abyste těmto výzvám mohli čelit, můžete automatizovat nasazení a využívat praktické postupy infrastruktury jako kód. V kódu definujete infrastrukturu, která se má nasadit. Kód infrastruktury se stává součástí vašeho projektu. Stejně jako kód aplikace ukládáte kód infrastruktury do zdrojového úložiště a jeho verzi. Každý člen vašeho týmu může spustit kód a nasadit podobná prostředí.
Pokud chcete implementovat infrastrukturu jako kód pro řešení Azure, Azure Resource Manager šablony (šablony ARM). Šablona je soubor JavaScript Object Notation JSON, který definuje infrastrukturu a konfiguraci vašeho projektu. Tato šablona využívá deklarativní syntaxi, která umožňuje prohlásit, co máte v úmyslu vytvořit, aniž by k tomu bylo nutné psát sekvence programových příkazů. V šabloně určíte prostředky, které se mají nasadit, a vlastnosti těchto prostředků.
Zavedli jsme nový jazyk s názvem Bicep, který se používá k vývoji FORMÁTU JSON šablony ARM. Soubory Bicep a šablony JSON nabízejí stejné možnosti. Šablony můžete převádět mezi těmito dvěma jazyky. Bicep poskytuje syntaxi, která se snadněji používá při vytváření šablon. Další informace najdete v tématu Co je Bicep?.
Další informace o tom, jak začít se šablonami ARM, najdete v následujícím videu.
Proč zvolit šablony ARM?
Pokud se snažíte rozhodnout mezi použitím šablon ARM a jedné z dalších služeb infrastruktury jako kódu, zvažte následující výhody použití šablon:
Deklarativní syntaxe: Šablony ARM umožňují deklarativní vytvoření a nasazení celé infrastruktury Azure. Můžete například nasadit nejen virtuální počítače, ale také síťovou infrastrukturu, systémy úložiště a všechny další prostředky, které budete potřebovat.
Opakovatelné výsledky: Opakovaně nasazujete infrastrukturu v průběhu životního cyklu vývoje a máte jistotu, že se prostředky nasadí konzistentním způsobem. Šablony jsou idempotentní, což znamená, že stejnou šablonu můžete nasadit mnohokrát a získat stejné typy prostředků ve stejném stavu. Můžete vyvinout jednu šablonu, která představuje požadovaný stav, a nikoli vyvíjet spoustu samostatných šablon pro reprezentaci aktualizací.
Orchestrace: Nemusíte se starat o složitost operací řazení. Resource Manager orchestruje nasazení vzájemně závislých prostředků tak, aby se vytvořily ve správném pořadí. Pokud je to možné, Resource Manager nasazovat prostředky paralelně, aby se nasazení dokončila rychleji než sériová nasazení. Šablonu nasadíte prostřednictvím jednoho příkazu, nikoli prostřednictvím několika imperativních příkazů.

Modulární soubory: Šablony můžete rozdělit na menší, znovu použitelné komponenty a propojit je v době nasazení. Jednu šablonu můžete také vnořit do jiné šablony.
Vytvoření libovolného prostředku Azure: V šablonách můžete okamžitě používat nové služby a funkce Azure. Jakmile poskytovatel prostředků zavádí nové prostředky, můžete tyto prostředky nasadit prostřednictvím šablon. Před použitím nových služeb nemusíte čekat na aktualizaci nástrojů nebo modulů.
Rozšiřitelnost: Pomocí skriptů nasazenímůžete do šablon přidat skripty PowerShellu nebo Bashe. Skripty nasazení rozšiřují vaši schopnost nastavit prostředky během nasazování. Skript může být součástí šablony nebo uložen v externím zdroji a odkazován v šabloně. Skripty nasazení poskytují možnost dokončit kompletní nastavení prostředí v jedné šabloně ARM.
Testování: Můžete se ujistit, že vaše šablona dodržuje doporučené pokyny, a to tak, že ji otestujete pomocí sady nástrojů pro šablony ARM (arm-ttk). Tato testovací sada je skript PowerShellu, který si můžete stáhnout z GitHub. Sada nástrojů usnadňuje vývoj odborných znalostí pomocí jazyka šablony.
Náhled změn: Před nasazením šablony můžete pomocí operace what-if (what-if) získat náhled změn. S what-if uvidíte, které prostředky se vytvoří, aktualizují nebo odstraní, a všechny vlastnosti prostředků, které se změní. Operace what-if zkontroluje aktuální stav vašeho prostředí a eliminuje potřebu správy stavu.
Předdefinované ověřování: Vaše šablona se nasadí až po úspěšném ověření. Resource Manager před spuštěním nasazení zkontroluje šablonu, aby se ujistili, že nasazení proběhne úspěšně. Vaše nasazení se s menší pravděpodobností zastaví v půlce dokončeného stavu.
Sledovaná nasazení: V Azure Portal můžete zkontrolovat historii nasazení a získat informace o nasazení šablony. Můžete si zobrazit nasazenou šablonu, předané hodnoty parametrů a všechny výstupní hodnoty. Ostatní služby infrastruktury jako kódu se prostřednictvím portálu nesleduje.

Zásady jako kód: Azure Policy je rozhraní kódu pro automatizaci zásad správného řízení. Pokud používáte zásady Azure, náprava zásad se provádí u prostředků, které nedodržuje předpisy, když se nasadí prostřednictvím šablon.
Deployment Blueprints(Podrobné plány nasazení): Podrobné plány poskytované Microsoftem můžete využít ke splnění zákonných standardů a standardů dodržování předpisů. Tyto podrobné plány zahrnují předem vytvořené šablony pro různé architektury.
Integrace CI/CD: Šablony můžete integrovat do svých nástrojů pro kontinuální integraci a průběžné nasazování (CI/CD), které mohou automatizovat kanály verzí pro rychlé a spolehlivé aktualizace aplikací a infrastruktury. Pomocí Azure DevOps a Resource Manager šablony můžete pomocí Azure Pipelines průběžně sestavovat a nasazovat projekty šablon ARM. Další informace najdete v tématu Projekt VS s kanály a Kurz: Kontinuálníintegrace šablon Azure Resource Manager s Azure Pipelines .
Exportovatelný kód: Šablonu pro existující skupinu prostředků můžete získat buď exportováním aktuálního stavu skupiny prostředků, nebo zobrazením šablony použité pro konkrétní nasazení. Zobrazení vyexportované šablony vám pomůže blíže se seznámit se syntaxí šablony.
Nástroje pro vytváření: Šablony můžete vytvářet pomocí Visual Studio Code a rozšíření nástroje pro šablony. Získáte IntelliSense, zvýrazňování syntaxe, řádovou nápovědu a mnoho dalších jazykových funkcí. Kromě Visual Studio Code můžete použít také Visual Studio.
Soubor šablony
V rámci šablony můžete psát výrazy šablony, které rozšiřují možnosti JSON. Tyto výrazy používají funkce poskytované Resource Manager.
Šablona má následující části:
Parametry – Zadejte hodnoty během nasazování, které umožňují používat stejnou šablonu s různými prostředími.
Proměnné – Definujte hodnoty, které se opakovaně budou používat v šablonách. Lze je vytvořit z hodnot parametrů.
Uživatelem definované funkce – Vytvářejte přizpůsobené funkce, které zjednodušují vaši šablonu.
Prostředky – Zadejte prostředky, které se nasadí.
Výstupy – vrátí hodnoty z nasazených prostředků.
Template deployment procesu
Když nasadíte šablonu, Resource Manager převede šablonu na REST API operace. Když například Resource Manager obdrží šablonu s následující definicí prostředku:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-04-01",
"name": "mystorageaccount",
"location": "westus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {}
}
]
Převede definici na následující operaci rozhraní REST API, která se odešle do poskytovatele prostředků Microsoft.Storage:
PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2019-04-01
REQUEST BODY
{
"location": "westus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {}
}
Všimněte si, že apiVersion, kterou jste nastavili v šabloně pro prostředek, se používá jako verze rozhraní API pro operaci REST. Šablonu můžete opakovaně nasadit a mít jistotu, že bude i nadále fungovat. Použitím stejné verze rozhraní API se nemusíte starat o změny, které by mohly být zavedeny v novějších verzích.
K nasazení šablony použijte libovolnou z následujících možností:
Návrh šablony
Záleží pouze na vás, jak definujete šablony a skupiny prostředků a jak chcete spravovat své řešení. Například můžete nasadit svou třívrstvou aplikaci prostřednictvím jediné šablony do jedné skupiny prostředků.

Není však nutné definovat celou infrastrukturu v jediné šabloně. Často má smysl rozdělit požadavky nasazení do několika cílených šablon, které jsou zaměřené na konkrétní účel. Tyto šablony můžete snadno opakovaně použít pro různá řešení. Chcete-li nasadit konkrétní řešení, vytvořte hlavní šablonu, která propojí všechny požadované šablony. Následující obrázek znázorňuje způsob nasazení třívrstvého řešení prostřednictvím nadřazené šablony, která obsahuje tři vnořené šablony.

Pokud si představíte, že vaše vrstvy mají tři samostatné životní cykly, můžete tyto tři vrstvy nasadit do samostatných skupin prostředků. Všimněte si, že prostředky mohou být stále propojené s prostředky v jiných skupinách prostředků.

Informace o vnořených šablonách najdete v tématu Použití propojených šablon s Azure Resource Managerem.
Sdílení šablon
Po vytvoření šablony ji můžete chtít sdílet s ostatními uživateli ve vaší organizaci. Specifikace šablon umožňují uložit šablonu jako typ prostředku. Řízení přístupu na základě rolí se používá ke správě přístupu ke specifikaci šablony. Uživatelé s přístupem pro čtení do specifikace šablony ji mohou nasadit, ale nemění šablonu.
Tento přístup znamená, že můžete bezpečně sdílet šablony, které vyhovují standardům vaší organizace.
Další kroky
- Podrobný kurz, který vás provede procesem vytvoření šablony, najdete v tématu kurz: vytvoření a nasazení první šablony ARM.
- Další informace o šablonách ARM pomocí příručky sady modulů na Microsoft Learn najdete v tématu nasazení a Správa prostředků v Azure pomocí šablon ARM.
- Informace o vlastnostech v souborech šablon naleznete v tématu pochopení struktury a syntaxe šablon ARM.
- Další informace o exportu šablon najdete v tématu rychlý Start: vytvoření a nasazení šablon ARM pomocí Azure Portal.
- Odpovědi na běžné otázky najdete v tématu Nejčastější dotazy k šablonám ARM.