Samouczek: wdrażanie specyfikacji szablonu jako szablonu połączonego
Dowiedz się, jak wdrożyć istniejącą specyfikację szablonu przy użyciu połączonego wdrożenia. Używasz specyfikacji szablonu do udostępniania szablonów usługi ARM innym użytkownikom w organizacji. Po utworzeniu specyfikacji szablonu można wdrożyć specyfikację szablonu przy użyciu programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Specyfikację szablonu można również wdrożyć w ramach rozwiązania przy użyciu połączonego szablonu.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Uwaga
Aby użyć specyfikacji szablonu w programie Azure PowerShell, musisz zainstalować wersję 5.0.0 lub nowszą. Aby używać go z interfejsem wiersza polecenia platformy Azure, użyj wersji 2.14.2 lub nowszej.
Tworzenie specyfikacji szablonu
Postępuj zgodnie z przewodnikiem Szybki start: tworzenie i wdrażanie specyfikacji szablonu w celu utworzenia specyfikacji szablonu na potrzeby wdrażania konta magazynu. W następnej sekcji potrzebna jest nazwa grupy zasobów specyfikacji szablonu, nazwa specyfikacji szablonu i wersja specyfikacji szablonu.
Tworzenie szablonu głównego
Aby wdrożyć specyfikację szablonu w szablonie usługi ARM, dodaj zasób wdrożenia do głównego szablonu. templateLink
We właściwości określ identyfikator zasobu specyfikacji szablonu. Utwórz szablon z następującym kodem JSON o nazwie azuredeploy.json. W tym samouczku założono, że zapisano ścieżkę c:\Templates\deployTS\azuredeploy.json , ale możesz użyć dowolnej ścieżki.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"tsResourceGroup":{
"type": "string",
"metadata": {
"Description": "Specifies the resource group name of the template spec."
}
},
"tsName": {
"type": "string",
"metadata": {
"Description": "Specifies the name of the template spec."
}
},
"tsVersion": {
"type": "string",
"defaultValue": "1.0.0.0",
"metadata": {
"Description": "Specifies the version the template spec."
}
},
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"metadata": {
"Description": "Specifies the storage account type required by the template spec."
}
}
},
"variables": {
"appServicePlanName": "[concat('plan', uniquestring(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2016-09-01",
"name": "[variables('appServicePlanName')]",
"location": "[parameters('location')]",
"sku": {
"name": "B1",
"tier": "Basic",
"size": "B1",
"family": "B",
"capacity": 1
},
"kind": "linux",
"properties": {
"perSiteScaling": false,
"reserved": true,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "createStorage",
"properties": {
"mode": "Incremental",
"templateLink": {
"id": "[resourceId(parameters('tsResourceGroup'), 'Microsoft.Resources/templateSpecs/versions', parameters('tsName'), parameters('tsVersion'))]"
},
"parameters": {
"storageAccountType": {
"value": "[parameters('storageAccountType')]"
}
}
}
}
],
"outputs": {
"templateSpecId": {
"type": "string",
"value": "[resourceId(parameters('tsResourceGroup'), 'Microsoft.Resources/templateSpecs/versions', parameters('tsName'), parameters('tsVersion'))]"
}
}
}
Identyfikator specyfikacji szablonu resourceID()
jest generowany przy użyciu funkcji . Argument grupy zasobów w funkcji resourceID() jest opcjonalny, jeśli templateSpec znajduje się w tej samej grupie zasobów bieżącego wdrożenia. Możesz również bezpośrednio przekazać identyfikator zasobu jako parametr. Aby uzyskać identyfikator, użyj:
$id = (Get-AzTemplateSpec -ResourceGroupName $resourceGroupName -Name $templateSpecName -Version $templateSpecVersion).Versions.Id
Składnia przekazywania parametrów do specyfikacji szablonu to:
"parameters": {
"storageAccountType": {
"value": "[parameters('storageAccountType')]"
}
}
Uwaga
Parametr apiVersion Microsoft.Resources/deployments
musi mieć wartość 2020-06-01 lub nowszą.
Wdrażanie szablonu
Podczas wdrażania połączonego szablonu wdraża zarówno aplikację internetową, jak i konto magazynu. Wdrożenie jest takie samo jak wdrażanie innych szablonów usługi ARM.
New-AzResourceGroup `
-Name webRG `
-Location westus2
New-AzResourceGroupDeployment `
-ResourceGroupName webRG `
-TemplateFile "c:\Templates\deployTS\azuredeploy.json" `
-tsResourceGroup templateSpecRg `
-tsName storageSpec `
-tsVersion 1.0
Następne kroki
Aby dowiedzieć się więcej o tworzeniu specyfikacji szablonu zawierającej połączone szablony, zobacz Tworzenie specyfikacji szablonu połączonego szablonu.