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

Dokončeno

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

Vytvořit šablonu

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í allowedValuesvlastnost , maxValuea description vlastnosti, aby bylo jasné, k čemu parametry slouží a jaký je účinek nastavení jejich hodnot. Šablona také obsahuje secureString typ, který označuje, že key parametr 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 obsahuje secure také dekorátor, který indikuje, že key parametr obsahuje tajná data.

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

  • Zobrazuje název a popis parametru.
  • Skryje text 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ů:

Screenshot that shows the Azure portal interface for entering parameter values for a template spec deployment.

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.

K vytvoření specifikace š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 by se měla vytvořit metadata specifikace šablony. Specifikace šablony ale můžete nasadit do libovolné oblasti.
  • -DisplayName je čitelný název člověka, který může obsahovat mezery.
  • -Description je čitelný popis, 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.

K vytvoření specifikace šablony az ts create použijte příkaz. 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 by se měla vytvořit metadata specifikace šablony. Specifikace šablony ale můžete nasadit do libovolné oblasti.
  • --display-name je čitelný název člověka, který může obsahovat mezery.
  • --description je čitelný popis, 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.

Tip

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