Vytvoření a publikování specifikace šablony
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í allowedValues
vlastnost , maxValue
a 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
, @maxValue
a @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ů:
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
.