Sdílet prostřednictvím


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

V tomto kurzu se dozvíte, jak do šablony Azure Resource Manager (šablony ARM) přidat funkce šablony. Funkce slouží k dynamickému vytváření hodnot. Kromě těchto funkcí šablon poskytovaných systémem můžete také vytvářet uživatelem definované funkce. Dokončení tohoto kurzu trvá 7 minut .

Požadavky

Doporučujeme absolvovat kurz o parametrech, 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 Azure CLI. Další informace najdete v tématu Nástroje šablon.

Zkontrolovat šablonu

Na konci předchozího kurzu měla 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",
  "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
      }
    }
  ]
}

Předpokládejme, že jste pevně zakódovali umístění účtu úložiště Azure na eastus, ale potřebujete ho nasadit do jiné oblasti. Potřebujete přidat parametr, který šabloně přidá flexibilitu a umožní, aby měla jiné umístění.

Použití funkce

Pokud jste dokončili kurz parametrů, použili jste funkci. Při přidání "[parameters('storageName')]"jste použili funkci parameters . Hranaté závorky označují, že syntaxe uvnitř hranatých závorek je výrazem šablony. Resource Manager syntaxi přeloží místo toho, aby ji zpracovávala jako literálovou hodnotu.

Funkce přidávají šabloně flexibilitu tím, že dynamicky získávají hodnoty během nasazování. V tomto kurzu použijete funkci k získání umístění nasazení skupiny prostředků.

Následující příklad zvýrazňuje změny pro přidání parametru s názvem location. Výchozí hodnota parametru volá funkci resourceGroup . Tato funkce vrátí objekt s informacemi o nasazené skupině prostředků. Jednou z vlastností objektu je vlastnost umístění. Pokud použijete výchozí hodnotu, účet úložiště a skupina prostředků budou mít stejné umístění. Prostředky ve skupině mají různá umístění.

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
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[parameters('storageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Nasazení šablony

V předchozích kurzech jste vytvořili účet úložiště v oblasti USA – východ, ale vaše skupina prostředků se vytvoří v oblasti USA – střed. Pro účely tohoto kurzu vytvoříte účet úložiště ve stejné oblasti jako skupina prostředků. Pro location (umístění) použijte výchozí hodnotu, abyste ji nemuseli zadávat. Musíte zadat nový název účtu úložiště, protože vytváříte účet úložiště v jiném umístění. Jako předponu použijte například store2 místo store1.

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 addlocationparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{new-unique-name}"

Poznámka

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

Ověření nasazení

Nasazení můžete ověřit prozkoumáním skupiny prostředků z Azure Portal.

  1. Přihlaste se k webu Azure Portal.
  2. V nabídce vlevo vyberte Skupiny prostředků.
  3. Zaškrtněte políčko nalevo od myResourceGroup a vyberte myResourceGroup.
  4. Vyberte skupinu prostředků, kterou jste vytvořili. Výchozí název je myResourceGroup.
  5. Všimněte si, že váš nasazený účet úložiště a vaše skupina prostředků mají stejné umístění.

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 odstranit skupinu prostředků.

  1. V Azure Portal v nabídce vlevo vyberte Skupiny prostředků.
  2. Do textového pole Filtrovat 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

V tomto kurzu použijete funkci k definování výchozí hodnoty parametru. V této sérii kurzů budete dál používat funkce. Na konci řady přidáte funkce do každé části šablony.