Modularizace šablon
Pokud používáte šablony Azure Resource Manageru, je nejlepší je modularizovat jejich rozdělením do jednotlivých komponent.
Primární metodika použití spočívá v použití propojených šablon.
Umožňuje rozdělit řešení na cílové komponenty a znovu použít tyto různé prvky v různých nasazeních.
Propojená šablona
Přidejte prostředek nasazení do hlavní šablony pro propojení jedné šablony s druhou.
"resources": [
{
"apiVersion": "2017-05-10",
"name": "linkedTemplate",
"type": "Microsoft.Resources/deployments",
"properties": {
"mode": "Incremental",
<link-to-external-template>
}
}
]
Vnořená šablona
Můžete také vnořit šablonu v rámci hlavní šablony, použít vlastnost šablony a zadat syntaxi šablony.
Poněkud pomáhá modularizaci, ale rozdělení různých komponent může mít za následek velikostný hlavní soubor, protože všechny prvky jsou v daném jediném souboru.
"resources": [
{
"apiVersion": "2017-05-10",
"name": "nestedTemplate",
"type": "Microsoft.Resources/deployments",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageName')]",
"apiVersion": "2015-06-15",
"location": "West US",
"properties": {
"accountType": "Standard_LRS"
}
}
]
}
}
}
]
Poznámka
Pro vnořené šablony nemůžete použít parametry ani proměnné definované v rámci samotné vnořené šablony. Parametry a proměnné můžete použít pouze z hlavní šablony.
Vlastnosti, které zadáte pro prostředek nasazení, se budou lišit v závislosti na propojení s externí šablonou nebo vnoření vložené šablony v rámci hlavní šablony.
Režimy nasazení
Při nasazování prostředků pomocí šablon máte tři možnosti:
- ověřit. Tato možnost zkompiluje šablony, ověří nasazení, zajistí funkčnost šablony (například bez cyklických závislostí) a správnou syntaxi.
- přírůstkový režim (výchozí). Tato možnost nasadí jenom cokoli, co je definováno v šabloně. Neodebere ani neupraví žádné zdroje, které nejsou definovány v šabloně. Pokud jste například nasadili virtuální počítač prostřednictvím šablony a přejmenovali virtuální počítač v šabloně, zůstane první nasazený virtuální počítač po opětovném spuštění šablony. Jedná se o výchozí režim.
- úplný režim: Resource Manager odstraní prostředky, které existují ve skupině prostředků, ale nejsou zadané v šabloně. Například po nasazení šablony budou ve skupině prostředků existovat pouze prostředky definované v šabloně. Osvědčeným postupem je použití tohoto režimu pro produkční prostředí k dosažení idempotence v šablonách nasazení.
Pokud chcete nastavit režim nasazení pomocí PowerShellu, použijte parametr režimu podle příkladu vnořené šablony výše v tomto tématu.
Poznámka
Osvědčeným postupem je použít jednu skupinu prostředků pro každé nasazení.
Poznámka
Pro propojené i vnořené šablony můžete použít pouze režim nasazení incremental
.
Externí šablona a externí parametry
Pokud chcete vytvořit odkaz na externí šablonu a soubor parametrů, použijte templateLink a parametersLink.
Při propojení se šablonou se ujistěte, že k ní má služba Resource Manager přístup.
Nemůžete například zadat místní soubor nebo soubor, který je dostupný jenom v místní síti.
Můžete zadat pouze hodnotu URI (Uniform Resource Identifier), která zahrnuje protokol HTTP nebo HTTPS.
Jednou z možností je umístit propojenou šablonu do účtu úložiště a použít identifikátor URI pro danou položku.
Můžete také zadat parametr přímo. Nemůžete ale použít vložené parametry i odkaz na soubor parametrů.
Následující příklad používá parametr templateLink:
"resources": [
{
"name": "linkedTemplate",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2018-05-01",
"properties": {
"mode": "Incremental",
"templateLink": {
"uri":"https://linkedtemplateek1store.blob.core.windows.net/linkedtemplates/linkedStorageAccount.json?sv=2018-03-28&sr=b&sig=dO9p7XnbhGq56BO%2BSW3o9tX7E2WUdIk%2BpF1MTK2eFfs%3D&se=2018-12-31T14%3A32%3A29Z&sp=r"
},
"parameters": {
"storageAccountName":{"value": "[variables('storageAccountName')]"},
"location":{"value": "[parameters('location')]"}
}
}
},
Zabezpečení externí šablony
I když propojená šablona musí být k dispozici externě, nemusí být zpřístupněna veřejnosti.
Místo toho můžete šablonu přidat do privátního účtu úložiště přístupného jenom vlastníkovi účtu úložiště a vytvořit tokeny sdíleného přístupového podpisu (SAS), které umožní přístup během nasazení.
Tento token SAS přidáte do identifikátoru URI propojené šablony.
I když se token předá jako zabezpečený řetězec, zaprotokoluje se v operacích nasazení identifikátor URI propojené šablony, včetně tokenu SAS.
Pokud chcete omezit vystavení, můžete také nastavit datum vypršení platnosti tokenu.