Kurz: Přidání parametrů do šablony ARM

V předchozím kurzu jste se dozvěděli, jak do šablony přidat účet úložiště Azure a nasadit ho. V tomto kurzu se dozvíte, jak vylepšit šablonu Azure Resource Manager (šablonu ARM) přidáním parametrů. Dokončení této instrukce trvá 14 minut .

Požadavky

Doporučujeme absolvovat kurz o prostředcích, ale není to nutné.

Musíte mít nainstalovaný Visual Studio Code a pracovat s rozšířením Azure Resource Manager Tools a Azure PowerShell nebo Rozhraní příkazového řádku (CLI) Azure Command-Line. Další informace najdete v tématu Nástroje šablon.

Zkontrolovat šablonu

Na konci předchozího kurzu má vaše šablona následující soubor JSON:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "{provide-unique-name}",
      "location": "eastus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Můžete si všimnout, že došlo k problému s touto šablonou. Název účtu úložiště je pevně zakódovaný. Danou šablonu proto můžete použít jen k nasazení stejného účtu úložiště. Pokud chcete nasadit účet úložiště s jiným názvem, musíte vytvořit novou šablonu, což samozřejmě není praktický způsob automatizace nasazení.

Nastavení opakovaně použitelné šablony

Aby byla šablona opakovaně použitelná, přidáme parametr, který můžete použít k předání názvu účtu úložiště. Zvýrazněný soubor JSON v následujícím příkladu ukazuje změny v šabloně. Parametr storageName je identifikován jako řetězec. Název účtu úložiště má všechna malá písmena nebo číslice a má maximálně 24 znaků.

Zkopírujte celý soubor a nahraďte šablonu jejím obsahem.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[parameters('storageName')]",
      "location": "eastus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Nasazení šablony

Pojďme nasadit šablonu. Následující příklad nasadí šablonu pomocí Azure CLI nebo PowerShellu. Všimněte si, že název účtu úložiště zadáte jako jednu z hodnot v příkazu nasazení. Jako název účtu úložiště zadejte stejný název, jaký jste použili v předchozím kurzu.

Pokud jste skupinu prostředků nevytvořili, přečtěte si téma Vytvoření skupiny prostředků. Příklad předpokládá, že jste proměnnou templateFile nastavili na cestu k souboru šablony, jak je znázorněno v prvním kurzu.

New-AzResourceGroupDeployment `
  -Name addnameparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}"

Principy aktualizací prostředků

Po nasazení účtu úložiště se stejným názvem, jaký jste použili dříve, vás může zajímat, jak opětovné nasazení ovlivní prostředek.

Pokud prostředek již existuje a ve vlastnostech nedošlo k žádné změně, není potřeba provádět další akce. Pokud prostředek existuje a vlastnost se změní, aktualizuje se. V případě, že prostředek neexistuje, vytvoří se.

Tento způsob zpracování aktualizací znamená, že vaše šablona může obsahovat všechny prostředky, které potřebujete pro řešení Azure. Šablonu můžete bezpečně znovu nasadit a vědět, že se prostředky mění nebo se vytvářejí jenom v případě potřeby. Pokud například do účtu úložiště přidáte soubory, můžete účet úložiště nasadit znovu, aniž byste o soubory přišli.

Přizpůsobení podle prostředí

Parametry umožňují přizpůsobit nasazení zadáním hodnot přizpůsobených konkrétnímu prostředí. Můžete předat různé hodnoty, například podle toho, jestli nasazujete do vývojového, testovacího nebo produkčního prostředí.

Předchozí šablona vždy nasadí standardní místně redundantní úložiště (LRS) Standard_LRS účet. Můžete chtít flexibilitu při nasazování různých skladových jednotek (SKU) v závislosti na prostředí. Následující příklad ukazuje změny pro přidání parametru pro skladovou položku. Zkopírujte celý soubor a vložte ho do šablony.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[parameters('storageName')]",
      "location": "eastus",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Parametr storageSKU má výchozí hodnotu. Tuto hodnotu použijte, pokud ji nasazení neurčí. Obsahuje také seznam povolených hodnot. Tyto hodnoty odpovídají hodnotám potřebným k vytvoření účtu úložiště. Chcete, aby uživatelé šablony předávali SKU, které fungují.

Opětovné nasazení šablony

Jste připraveni k dalšímu nasazení. Vzhledem k tomu, že výchozí skladová položka je nastavená na Standard_LRS, už jste zadali hodnotu parametru.

New-AzResourceGroupDeployment `
  -Name addskuparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}"

Poznámka

Pokud nasazení selže, použijte verbose přepínač k získání informací o vytvářených prostředcích. debug Pomocí přepínače získáte další informace pro ladění.

Pokud chcete zjistit flexibilitu šablony, pojďme ji znovu nasadit. Tentokrát nastavte parametr skladové položky na standardní geograficky redundantní úložiště (GRS) Standard_GRS. Můžete buď předat nový název a vytvořit jiný účet úložiště, nebo použít stejný název k aktualizaci stávajícího účtu úložiště. Obě možnosti fungují.

New-AzResourceGroupDeployment `
  -Name usenondefaultsku `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}" `
  -storageSKU Standard_GRS

Nakonec spustíme ještě jeden test a podíváme se, co se stane, když předáte skladovou položku, která není jednou z povolených hodnot. V tomto případě otestujeme scénář, ve kterém uživatel šablony považuje základní za jednu ze skladových položek.

New-AzResourceGroupDeployment `
  -Name testskuparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}" `
  -storageSKU basic

Příkaz najednou selže s chybovou zprávou, která zobrazí povolené hodnoty. Procesor ARM najde chybu před zahájením nasazení.

Vyčištění prostředků

Pokud přecházíte k dalšímu kurzu, nemusíte skupinu prostředků odstraňovat.

Pokud teď zastavujete, možná budete chtít vyčistit nasazené prostředky odstraněním skupiny prostředků.

  1. V Azure Portal v nabídce vlevo vyberte Skupina prostředků.
  2. Do textového pole Filtr pro libovolné pole ... zadejte název skupiny prostředků.
  3. Zaškrtněte políčko vedle myResourceGroup a vyberte myResourceGroup nebo název vaší skupiny prostředků.
  4. V horní nabídce vyberte Odstranit skupinu prostředků .

Další kroky

Vylepšili jste šablonu, kterou jste vytvořili v prvním kurzu , přidáním parametrů. V dalším kurzu se dozvíte o funkcích šablon.