Seznámení se strukturou šablony Azure Resource Manageru

Dokončeno

V této lekci se dozvíte, jak můžete pomocí šablon Azure Resource Manageru (šablon ARM) implementovat infrastrukturu jako kód. Projdete si oddíly šablony ARM, naučíte se postup jejího nasazení do Azure a podrobně se seznámíte s jejím oddílem resources.

Co je infrastruktura jako kód?

Infrastruktura jako kód umožňuje popsat prostřednictvím kódu infrastrukturu, kterou potřebujete pro vaši aplikaci.

Postupem ve formě infrastruktury jako kódu můžete spravovat kód aplikace i vše potřebné k nasazení aplikace v centrálním úložišti kódu. Mezi výhody infrastruktury jako kódu patří:

  • Konzistentní konfigurace
  • Jednodušší škálovatelnost
  • Rychlejší nasazení
  • Lepší sledovatelnost

Toto video vysvětluje infrastrukturu jako kód:

Co je šablona ARM?

Šablony ARM představují soubory JSON (JavaScript Object Notation), které definují infrastrukturu a konfiguraci nasazení. Šablona používá deklarativní syntaxi. Deklarativní syntaxe představuje způsob vytvoření struktury a prvků, které popisují, jak prostředky vypadají bez popisu toku řízení. Deklarativní syntaxe se liší od imperativní syntaxe, která používá příkazy určené k provedení počítačem. Imperativní skriptování se zaměřuje na určení všech kroků nasazení prostředků.

Prostřednictvím šablon ARM můžete deklarovat, co chcete nasadit, aniž byste museli napsat sekvenci programovacích příkazů pro vytvoření nasazení. V šabloně ARM zadáte prostředky a jejich vlastnosti. Azure Resource Manager pak pomocí této informace nasadí prostředky uspořádaným a konzistentním způsobem.

Výhody využití šablon ARM

Šablony ARM umožňují automatizovat nasazení a používat postup ve formě infrastruktury jako kódu (IaC). Kód šablony se stane součástí vaší infrastruktury a vývojových projektů. Soubory IaC můžete stejně jako kód aplikace ukládat v úložišti zdrojového kódu a můžete u nich vytvářet více verzí.

Šablony ARM jsou idempotentní. To znamená, že můžete stejnou šablonu nasadit opakovaně a vždy zajistit stejné prostředky ve stejném stavu.

Resource Manager orchestruje nasazení prostředků tak, aby se vytvořily ve správném pořadí. Pokud je to možné, prostředky se vytvářejí paralelně, takže nasazení šablon ARM se dokončí rychleji než skriptovaná nasazení.

Diagram znázorňující mapování postupu zpracování šablony Existuje pouze jedno volání pro zpracování šablony na rozdíl od několika volání zpracování skriptů.

Resource Manager má navíc integrované ověřování. Před zahájením nasazení zkontroluje šablonu, aby se ujistila, že nasazení proběhne úspěšně.

Pokud se zvýší složitost nasazení, můžete šablony ARM rozdělit na menší opakovaně použitelné komponenty. Tyto menší šablony pak můžete při nasazování vzájemně propojit. Taky je možné vnořovat šablony do jiných šablon.

Na portálu Azure Portal můžete zkontrolovat historii nasazení a získat informace o jeho stavu. Portál zobrazí hodnoty pro všechny parametry a výstupy.

Zároveň můžete šablony ARM integrovat do nástrojů kontinuální integrace a průběžného nasazování (CI/CD), jako je Azure Pipelines, takže zautomatizujete svoje kanály verze za účelem rychlých a spolehlivých aktualizací aplikací a infrastruktury. Přes úlohy šablon ARM a Azure DevOps můžete nepřetržitě sestavovat a nasazovat svoje projekty.

Struktura souborů šablon ARM

Když píšete šablonu ARM, musíte porozumět všem částem, které tvoří šablonu a co dělají. Soubory šablon ARM se skládají z následujících prvků:

Element (Prvek) Popis
schéma Povinný oddíl, který definuje umístění souboru schématu JSON s popisem struktury dat JSON. Použité číslo verze závisí na rozsahu nasazení a editoru JSON.
contentVersion Povinný oddíl, který definuje verzi šablony (například 1.0.0.0). Tuto hodnotu můžete použít k dokumentování významných změn šablony, abyste měli jistotu, že nasazujete správnou šablonu.
apiProfile Nepovinný oddíl, který definuje kolekci verzí API pro typy prostředků. Zadáním této hodnoty se můžete vyhnout specifikaci verzí API pro každý prostředek v šabloně.
parameters Nepovinný oddíl, ve kterém definujete hodnoty, které se zadávají během nasazení. Tyto hodnoty můžete zadat v souboru parametrů, pomocí parametrů příkazového řádku nebo na webu Azure Portal.
proměnné Nepovinný oddíl, kde definujete hodnoty umožňující zjednodušení výrazů jazyka šablony.
funkce Nepovinný oddíl, kde definujete uživatelem definované funkce dostupné v rámci šablony. Uživatelem definované funkce můžou šablonu zjednodušit v případech, kdy se v ní opakovaně používají složité výrazy.
prostředky Povinný oddíl definující skutečné položky ve skupině prostředků nebo předplatném, které chcete nasadit nebo aktualizovat.
výstup Volitelný oddíl, ve kterém zadáte hodnoty vrácené na konci nasazení.

Nasazení šablony ARM do Azure

Šablonu ARM můžete do Azure nasadit jedním z následujících způsobů:

  • Nasazení místní šablony
  • Nasazení propojené šablony
  • Nasazení v kanálu průběžného nasazování

Tento modul se věnuje nasazení místní šablony ARM. V budoucích modulech Learn se dozvíte, jak nasadit složitější infrastrukturu a jak integrovat se službou Azure Pipelines.

Pokud chcete nasadit místní šablonu, je nutné si místně nainstalovat buď Azure PowerShell, nebo Azure CLI.

Nejdříve se přihlaste do Azure pomocí Azure CLI nebo Azure PowerShellu.

az login

Dále definujte skupinu prostředků. Můžete použít již definovanou skupinu prostředků nebo vytvořit novou pomocí následujícího příkazu. Dostupné hodnoty umístění můžete získat z: az account list-locations (CLI) nebo Get-AzLocation (PowerShell). Výchozí umístění můžete nakonfigurovat pomocí .az configure --defaults location=<location>

az group create \
  --name {name of your resource group} \
  --location "{location}"

Pokud chcete spustit nasazení šablony ve skupině prostředků, použijte příkaz Azure CLI az deployment group create nebo příkaz Azure PowerShellu New-AzResourceGroupDeployment.

Tip

Rozdíl mezi az deployment group create a az group deployment create je, že az group deployment create je starý příkaz, který má být zastaralý a bude nahrazen .az deployment group create Proto doporučujeme nasadit az deployment group create prostředky v rámci oboru skupiny prostředků.

Oba příkazy vyžadují skupinu prostředků, oblast a název nasazení, abyste ji mohli snadno identifikovat v historii nasazení. Pro usnadnění cvičení vytvoří proměnnou, která uloží cestu k souboru šablony. Tato proměnná usnadňuje spouštění příkazů nasazení, protože při každém nasazení nemusíte znovu zadávat cestu. Tady je příklad:

Jestliže chcete spustit tento příkaz nasazení, musíte mít k dispozici nejnovější verzi Azure CLI.

templateFile="{provide-the-path-to-the-template-file}"
az deployment group create \
  --name blanktemplate \
  --resource-group myResourceGroup \
  --template-file $templateFile

Propojené šablony se používají k nasazení komplexních řešení. Šablonu můžete rozdělit na mnoho šablon a nasadit je přes hlavní šablonu. Když nasadíte hlavní šablonu, aktivuje nasazení propojené šablony. Propojenou šablonu můžete uložit a zabezpečit pomocí tokenu SAS.

Kanál CI/CD automatizuje vytváření a nasazování vývojových projektů, mezi které patří i projekty šablony ARM. Dva nejběžnější kanály používané pro nasazení šablony jsou Azure Pipelines a GitHub Actions.

Podrobnější informace o těchto dvou typech nasazení najdete v dalších modulech.

Přidání prostředků do šablony

Pokud chcete do šablony přidat prostředek, potřebujete znát poskytovatele prostředků a jeho typy prostředků. Syntaxe této kombinace má formát {poskytovatel-prostřeků}/{typ-prostředku}. Pokud například chcete do šablony přidat prostředek účtu úložiště, potřebujete Microsoft.Storage poskytovatele prostředků. Jedním z typů tohoto poskytovatele je storageAccount. Váš typ prostředku se tedy zobrazí jako Microsoft.Storage/storageAccounts. Můžete použít seznam poskytovatelů prostředků pro služby Azure, kde najdete poskytovatele, které potřebujete.

Jakmile definujete poskytovatele a typ prostředku, musíte porozumět vlastnostem každého typu prostředku, který chcete použít. Podrobnosti najdete v článku o definici prostředků v šabloně Azure Resource Manageru. Pokud chcete najít prostředek, zobrazte seznam v levém sloupci. Všimněte si, že vlastnosti jsou seřazené podle verze API.

Snímek obrazovky se stránkou dokumentace Microsoftu zobrazující vybranou dokumentaci k účtu úložiště

Následuje příklad některých vlastností uvedených na stránce účtů úložiště:

Snímek obrazovky se stránkou dokumentace Microsoftu zobrazující některé vlastnosti účtu úložiště

Šablona pro náš příklad úložiště může vypadat takto:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.1",
  "apiProfile": "",
  "parameters": {},
  "variables": {},
  "functions": [],
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-05-01",
      "name": "learntemplatestorage123",
      "location": "westus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ],
  "outputs": {}
}