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. Vzhledem k tomu, že 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.

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, kterou je potřeba nasadit. Kód infrastruktury se stane součástí vašeho projektu. Stejně jako kód aplikace uložíte kód infrastruktury ve zdrojovém úložišti 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ů budou tyto prostředky nasazeny.

Tip

Zavedli jsme nový jazyk s názvem Bicep , který nabízí stejné funkce jako šablony ARM, ale s 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?.

Další informace o tom, jak začít používat šablony ARM, najdete v následujícím videu.

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é budete potřebovat.

  • 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ě, aby vaše nasazení byla dokončena 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ůže být součástí šablony nebo uložen v externím zdroji a odkazován v šabloně. Skripty nasazení umožňují dokončit kompletní nastavení prostředí v jedné šabloně ARM.

  • Testování: Šablonu můžete ověřit podle doporučených pokynů tím, ž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 GitHubu. Sada nástrojů usnadňuje vývoj odborných znalostí pomocí jazyka šablony.

  • Změny ve verzi Preview: Pomocí operace citlivostní analýza můžete před nasazením šablony získat náhled změn. Díky citlivosti uvidíte, které prostředky se vytvoří, aktualizují nebo odstraní, a všechny vlastnosti prostředku, které se změní. 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 nasazení bude ú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 nevyhovující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), které umožňují automatizovat 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 využívají funkce poskytované Resource Managerem.

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

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, 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=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

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ů.

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

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í. Pokud chcete nasadit konkrétní řešení, vytvoříte hlavní šablonu, která pro propojení všech požadovaných šablon. 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.

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ů. Všimněte si, že prostředky mohou být stále propojené 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. Řízení přístupu na základě role slouží ke správě přístupu 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