Vytvoření a publikování specifikace šablony

Dokončeno

Podívejme se, jak vytvoříte a publikujete specifikaci šablony.

Vytvoření šablony

Pokud chcete vytvořit šablonu pro použití jako specifikaci šablony, napíšete šablonu Azure Resource Manageru (šablonu ARM) stejně jako obvykle. Můžete zahrnout parametry, proměnné, prostředky a výstupy.

Můžete použít propojené šablony, které umožňují definovat části nasazení v samostatných souborech. Při práci se specifikacemi šablon lze propojené šablony vložit do specifikace šablony a odkazovat na ji z hlavní šablony.

Je důležité, aby vaše šablona byla jednoduchá pro všechny uživatele ve vaší organizaci, aby porozuměli a používali, zejména její parametry. Ujistěte se, že používáte jasné a srozumitelné názvy parametrů. Vlastnosti parametrů a metadata šablony použijte k zadání informací o hodnotách, které očekáváte, že vaše parametry budou zahrnuty, například v tomto příkladu:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "environmentType": {
      "type": "string",
      "allowedValues": [
        "Production",
        "NonProduction"
      ],
      "metadata": {
        "description": "The type of the environment to deploy. This will determine the SKUs and cost of the resources."
      }
    },
    "key": {
      "type": "secureString",
      "metadata": {
        "description": "The secret key to use."
      }
    },
    "location": {
      "type": "string",
      "metadata": {
        "description": "The Azure region into which the resources should be deployed."
      }
    },
    "sqlServerCount": {
      "type": "int",
      "maxValue": 5,
      "metadata": {
        "description": "The number of Azure SQL logical servers to create."
      }
    }
  },
  "resources": []
}

V příkladu parametry šablony používají vlastnosti allowedValues, maxValuea description, aby bylo jasné, k čemu parametry slouží a jaký je účinek nastavení jejich hodnot. Šablona obsahuje také typ secureString označující, že parametr key obsahuje tajná data.

Je důležité, aby vaše šablona byla jednoduchá pro všechny uživatele ve vaší organizaci, aby porozuměli a používali, zejména parametry. Ujistěte se, že používáte jasné a srozumitelné názvy parametrů. Pomocí dekorátorů parametrů zadejte informace o hodnotách, které očekáváte, že vaše parametry budou zahrnovat, například v tomto příkladu:

@description('The type of the environment to deploy. This will determine the SKUs and cost of the resources.')
@allowed([
  'Production'
  'NonProduction'
])
param environmentType string

@secure()
@description('The secret key to use.')
param key string

@description('The Azure region into which the resources should be deployed.')
param location string

@description('The number of Azure SQL logical servers to create.')
@maxValue(5)
param sqlServerCount int

V příkladu parametry šablony používají @allowed, @maxValuea @description dekorátory, aby bylo jasné, k čemu parametry slouží a jaký je účinek nastavení jejich hodnot. Šablona také obsahuje dekorátor secure, který označuje, že parametr key obsahuje tajná data.

Když někdo nasadí specifikaci šablony pomocí portálu Azure, portál:

  • Zobrazuje název a popis parametru.
  • Skryje vstupní pole textu pro zabezpečené parametry.
  • Vynucuje povolené hodnoty, limity délky a limity hodnot, které definujete.

Tento snímek obrazovky znázorňuje položku hodnot parametrů:

snímek obrazovky znázorňující rozhraní webu Azure Portal pro zadání hodnot parametrů pro nasazení specifikace šablony

Je důležité myslet na to, jak uživatelé používají specifikaci šablony, a zajistit, aby vaše parametry byly jasné a srozumitelné.

Publikování specifikace šablony do Azure

Po napsání šablony místo odeslání šablony do Azure k nasazení publikujete specifikaci šablony.

Důležitý

Když publikujete soubor Bicep jako specifikaci šablony, kód Bicep se převede na šablonu JSON. Proces převodu kódu Bicep na JSON odebere některé informace v souboru Bicep. Například komentáře, symbolické názvy prostředků a pořadí, ve kterém definujete prostředky, můžou chybět nebo se lišit ve formátu JSON. To znamená, že nemůžete snadno publikovat soubor Bicep jako specifikaci šablony a pak získat původní soubor Bicep zpět (označovaný také jako zaokrouhlování). Je vhodné zachovat kopii původního kódu Bicep v úložišti kódu, jako je Git, zejména při práci se specifikacemi šablon.

Pokud chcete vytvořit specifikaci šablony, použijte rutinu New-AzTemplateSpec. Následující příklad ukazuje, jak můžete vytvořit specifikaci šablony pro šablonu účtu úložiště:

New-AzTemplateSpec `
  -Name StorageWithoutSAS `
  -Location westus `
  -DisplayName 'Storage account with SAS disabled' `
  -Description 'This template spec creates a storage account, which is preconfigured to disable SAS authentication.' `
  -Version '1.0' `
  -TemplateFile main.bicep
New-AzTemplateSpec `
  -Name StorageWithoutSAS `
  -Location westus `
  -DisplayName 'Storage account with SAS disabled' `
  -Description 'This template spec creates a storage account, which is preconfigured to disable SAS authentication.' `
  -Version '1.0' `
  -TemplateFile azuredeploy.json

Pojďme se podívat na jednotlivé parametry:

  • -Name je název prostředku specifikace šablony, který nemůže obsahovat mezery.
  • -Location je umístění, ve kterém se mají vytvořit metadata specifikace šablony. Specifikace šablony ale můžete nasadit do libovolné oblasti.
  • -DisplayName je název čitelný člověkem, který může obsahovat mezery.
  • -Description je popis čitelný člověkem, který můžete použít k poskytnutí podrobností o obsahu specifikace šablony a o tom, kdy ho může někdo použít.
  • -Version je verze specifikace šablony. O verzích se dozvíte později v tomto modulu.
  • -TemplateFile je cesta k šabloně ARM pro vytvoření specifikace šablony.

Pokud chcete vytvořit specifikaci šablony, použijte příkaz az ts create. Následující příklad ukazuje, jak můžete vytvořit specifikaci šablony pro šablonu účtu úložiště:

az ts create \
  --name StorageWithoutSAS \
  --location westus \
  --display-name "Storage account with SAS disabled" \
  --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
  --version 1.0 \
  --template-file main.bicep
az ts create \
  --name StorageWithoutSAS \
  --location westus \
  --display-name "Storage account with SAS disabled" \
  --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
  --version 1.0 \
  --template-file azuredeploy.json

Pojďme se podívat na jednotlivé argumenty:

  • --name je název prostředku specifikace šablony, který nemůže obsahovat mezery.
  • --location je umístění, ve kterém se mají vytvořit metadata specifikace šablony. Specifikace šablony ale můžete nasadit do libovolné oblasti.
  • --display-name je název čitelný člověkem, který může obsahovat mezery.
  • --description je popis čitelný člověkem, který můžete použít k poskytnutí podrobností o obsahu specifikace šablony a o tom, kdy ho může někdo použít.
  • --version je verze specifikace šablony. O verzích se dozvíte později v tomto modulu.
  • --template-file je cesta k šabloně ARM pro vytvoření specifikace šablony.

žádné návrhy zlepšení nejsou potřeba, překlad je přesný tak, jak je pro daný kontext.

Můžete také definovat specifikaci šablony v rámci šablony ARM! Vzhledem k tomu, že specifikace šablony je sama o sobě prostředkem Azure, můžete nasadit šablonu, která definuje prostředek s typem Microsoft.Deployments/templateSpecs.