Sdílet prostřednictvím


Co jsou šablony ARM?

S přechodem do cloudu mnoho týmů přijalo 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. Jak se infrastruktura stala součástí iterativního procesu, dělení mezi operacemi a vývojem zmizelo. Týmy potřebují spravovat infrastrukturu a kód aplikace prostřednictvím jednotného procesu.

Aby bylo možné tyto výzvy splnit, automatizujte nasazení a využijte praxi infrastruktury jako kódu. V kódu definujete infrastrukturu, kterou je potřeba nasadit. Kód infrastruktury je součástí vašeho projektu. Stejně jako kód aplikace uložte kód infrastruktury do zdrojového úložiště a jeho verzi. Kód může spustit kdokoli z vašeho týmu a nasadit podobná prostředí.

Pokud chcete pro svá řešení Azure implementovat infrastrukturu jako kód, použijte šablony Azure Resource Manageru (šablony ARM). Šablona je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci 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ě zadáte prostředky, které se mají nasadit, a vlastnosti těchto prostředků. Můžete také určit, ve které skupině prostředků se tyto prostředky nasadí.

Tip

Zavedli jsme nový jazyk s názvem Bicep , který nabízí stejné funkce jako šablony ARM, ale se syntaxí, která se snadněji používá. Každý soubor Bicep se během nasazování automaticky převede na šablonu ARM. Pokud uvažujete o infrastruktuře jako možnostech kódu, doporučujeme se podívat na Bicep. Další informace najdete v tématu Co je Bicep?.

Proč zvolit šablony ARM?

Pokud se pokoušíte rozhodnout mezi používáním šablon ARM a jednou z dalších infrastruktur jako služeb kódu, zvažte následující výhody použití šablon:

  • Deklarativní syntaxe: Šablony ARM umožňují vytvořit a nasadit celou infrastrukturu Azure deklarativním způsobem. Můžete například nasadit nejen virtuální počítače, ale také síťovou infrastrukturu, úložné systémy a všechny další prostředky, které potřebujete.

  • Opakovatelné výsledky: Opakovaně nasazovat infrastrukturu v průběhu životního cyklu vývoje a mít jistotu, že jsou vaše prostředky nasazeny 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 vytvořit jednu šablonu, která představuje požadovaný stav, a ne vyvíjet spoustu samostatných šablon, které představují aktualizace. Například následující soubor vytvoří účet úložiště. Pokud nasadíte tuto šablonu a účet úložiště se zadanými vlastnostmi, nebudou provedeny žádné změny.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": {
    "mystore": {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-04-01",
      "name": "mystorageaccount",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2"
    }
  }
}
  • Orchestrace: Nemusíte se starat o složitosti operací řazení. Resource Manager orchestruje nasazení vzájemně závislých prostředků, aby se vytvořily ve správném pořadí. Pokud je to možné, Resource Manager nasadí prostředky paralelně, takže nasazení se dokončí rychleji než sériová nasazení. Šablonu nasadíte jedním příkazem, nikoli několika imperativními příkazy.

    Diagram znázorňující rozdíl mezi imperativním a deklarativním nasazením

  • Modulární soubory: Šablony můžete rozdělit na menší, opakovaně použitelné komponenty a propojit je v době nasazení. Jednu šablonu můžete také vnořit do jiné šablony.

  • Vytvořte libovolný prostředek Azure: Nové služby a funkce Azure můžete okamžitě používat v šablonách. Jakmile poskytovatel prostředků zavede nové prostředky, můžete je 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 Bash. Skripty nasazení rozšiřují vaši schopnost nastavit prostředky během nasazení. Skript můžete zahrnout do šablony nebo ho uložit do externího zdroje a odkazovat na něj v šabloně. Pomocí skriptů nasazení můžete dokončit kompletní nastavení prostředí v jedné šabloně ARM.

  • Testování: Abyste měli jistotu, že vaše šablona dodržuje doporučené pokyny, otestujte ji pomocí sady nástrojů pro šablony ARM (arm-ttk). Tato testovací sada je skript PowerShellu, který si můžete stáhnout z GitHubu. Sada nástrojů usnadňuje vývoj odborných znalostí pomocí jazyka šablony.

  • Změny náhledu : Před nasazením šablony použijte operaci citlivostní analýza k zobrazení náhledu změn. Pomocí citlivostní akce uvidíte, které prostředky se mají vytvořit, aktualizovat nebo odstranit, a všechny vlastnosti prostředku, které se mají změnit. Operace citlivostní kontroly aktuálního stavu vašeho prostředí a eliminuje potřebu správy stavu.

  • Předdefinované ověření: Šablona se nasadí až po úspěšném ověření. Resource Manager před zahájením nasazení zkontroluje šablonu, aby se ujistil, že je úspěšná. Nasazení je méně pravděpodobné, že se zastaví v polokončím stavu.

  • Sledované nasazení: Na webu Azure Portal můžete zkontrolovat historii nasazení a získat informace o nasazení šablony. Zobrazí se šablona, která byla nasazena, hodnoty parametrů předané a všechny výstupní hodnoty. Jiná infrastruktura jako služby kódu se nesleduje prostřednictvím portálu.

    Snímek obrazovky webu Azure Portal zobrazující historii nasazení

  • Zásady jako kód: Azure Policy je zásada jako architektura 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 nekompatibilních prostředků při nasazení prostřednictvím šablon.

  • 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 připravené šablony pro různé architektury.

  • Integrace CI/CD: Šablony můžete integrovat do nástrojů kontinuální integrace a průběžného nasazování (CI/CD). Tato integrace automatizuje kanály verzí pro rychlé a spolehlivé aktualizace aplikací a infrastruktury. Pomocí úlohy šablony Azure DevOps a Resource Manageru 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 Manageru se službou Azure Pipelines.

  • Exportovatelný kód: Šablonu pro existující skupinu prostředků můžete získat buď exportem 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í editoru Visual Studio Code a rozšíření nástroje šablony. Získáte IntelliSense, zvýrazňování syntaxe, nápovědu v řádku a mnoho dalších jazykových funkcí. Kromě editoru Visual Studio Code můžete také použít Visual Studio.

Soubor šablony

V šabloně můžete napsat výrazy šablon, které rozšiřují možnosti JSON. Tyto výrazy používají funkce , které Resource Manager poskytuje.

Šablona obsahuje následující části:

  • Parametry – Zadejte hodnoty během nasazení, které přizpůsobíte pro různá prostředí při použití stejné šablony.

  • Proměnné – Definujte hodnoty, které znovu použijete ve svých šablonách. Můžete je vytvořit z hodnot parametrů.

  • Uživatelem definované funkce – Vytvořte přizpůsobené funkce , které zjednodušují vaši šablonu.

  • Prostředky – Určete prostředky, které se mají nasadit.

  • Výstupy – vrátí hodnoty z nasazených prostředků.

Proces nasazení šablony

Když nasadíte šablonu, Resource Manager ji převede na operace rozhraní REST API. Když například Resource Manager obdrží šablonu s následující definicí prostředku:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2022-09-01",
    "name": "mystorageaccount",
    "location": "centralus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "StorageV2"
  },
]

Převede definici na následující operaci rozhraní REST API, kterou odešle poskytovateli prostředků Microsoft.Storage:

PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2022-09-01
REQUEST BODY
{
  "location": "centralus",
  "sku": {
    "name": "Standard_LRS"
  },
  "kind": "StorageV2",
  "properties": {}
}

Všimněte si, že apiVersion , který jste nastavili v šabloně prostředku, 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. Při použití stejné verze rozhraní API se nemusíte starat o zásadní změny, které by mohly být zavedeny v novějších verzích.

K nasazení šablony použijte některou z následujících možností:

Návrh šablony

Definujte šablony a skupiny prostředků podle toho, jak chcete řešení spravovat. Třívrstvé aplikace můžete například nasadit prostřednictvím jedné šablony do jedné skupiny prostředků.

Diagram znázorňující nasazení třívrstvé aplikace pomocí jedné šablony

Nemusíte definovat celou infrastrukturu v jedné š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í. Pokud chcete nasadit konkrétní řešení, vytvořte hlavní šablonu, která propojuje všechny požadované šablony. Následující obrázek ukazuje, jak nasadit třívrstvé řešení prostřednictvím nadřazené šablony, která obsahuje tři vnořené šablony.

Diagram znázorňující nasazení třívrstvé aplikace pomocí vnořených šablon

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ů. Prostředky je stále možné propojit s prostředky v jiných skupinách prostředků.

Diagram znázorňující třívrstvé nasazení aplikace s samostatnými skupinami 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. Pomocí řízení přístupu na základě role můžete spravovat přístup ke specifikaci šablony. Uživatelé s přístupem pro čtení ke specifikaci šablony ji mohou nasadit, ale ne změnit šablonu.

Tento přístup znamená, že můžete bezpečně sdílet šablony, které splňují standardy vaší organizace.

Získání podpory

Tady jsou kroky pro otevření lístku podpory pro problémy související se šablonou Azure Resource Manageru (ARM):

  1. Otevřete Azure Portal.

  2. V pravém horním rohu vyberte ikonu Podpora a řešení potíží.

  3. Stručně popište problém, zadejte šablonu ARM a pak vyberte Přejít.

  4. Ve které službě máte problém?, vyberte v části Monitorování a správa portálu a pak vyberte Další.

  5. Vyberte předplatné a pak vyberte Další.

  6. Vyberte Problém se šablonami ARM a pak vyberte Další.

    Snímek obrazovky s žádostí o podporu šablon ARM

Další kroky