Zelfstudie: Een sjabloonspecificatie implementeren als een gekoppelde sjabloon
Meer informatie over het implementeren van een bestaande sjabloonspecificatie met behulp van een gekoppelde implementatie. U gebruikt sjabloonspecificaties om ARM-sjablonen te delen met andere gebruikers in uw organisatie. Nadat u een sjabloonspecificatie hebt gemaakt, kunt u de sjabloonspecificatie implementeren met behulp van Azure PowerShell of Azure CLI. U kunt de sjabloonspecificatie ook implementeren als onderdeel van uw oplossing met behulp van een gekoppelde sjabloon.
Vereisten
Een Azure-account met een actief abonnement. Gratis een account maken
Notitie
Als u sjabloonspecificatie wilt gebruiken met Azure PowerShell, moet u versie 5.0.0 of hoger installeren. Voor gebruik met Azure CLI hebt u versie 2.14.2 of hoger nodig.
Een sjabloonspecificatie maken
Volg de quickstart: Sjabloonspecificatie maken en implementeren om een sjabloonspecificatie te maken voor het implementeren van een opslagaccount. U hebt de naam van de resourcegroep van de sjabloonspecificatie, de naam van de sjabloonspecificatie en de versie van de sjabloonspecificatie in de volgende sectie nodig.
De hoofdsjabloon maken
Als u een sjabloonspecificatie in een ARM-sjabloon wilt implementeren, voegt u een implementatieresource toe aan uw hoofdsjabloon. Geef in de templateLink
eigenschap de resource-id van een sjabloonspecificatie op. Maak een sjabloon met de volgende JSON met de naam azuredeploy.json. In deze zelfstudie wordt ervan uitgegaan dat u het pad c:\Templates\deployTS\azuredeploy.json hebt opgeslagen, maar u kunt elk pad gebruiken.
{
"$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'))]"
}
}
}
De sjabloonspecificatie-id wordt gegenereerd met behulp van de resourceID()
functie. Het argument resourcegroep in de functie resourceID() is optioneel als de templateSpec zich in dezelfde resourcegroep van de huidige implementatie bevindt. U kunt resource-id ook rechtstreeks doorgeven als parameter. Als u de id wilt ophalen, gebruikt u:
$id = (Get-AzTemplateSpec -ResourceGroupName $resourceGroupName -Name $templateSpecName -Version $templateSpecVersion).Versions.Id
De syntaxis voor het doorgeven van parameters aan de sjabloonspecificatie is:
"parameters": {
"storageAccountType": {
"value": "[parameters('storageAccountType')]"
}
}
Notitie
De apiVersion van Microsoft.Resources/deployments
moet 2020-06-01 of hoger zijn.
De sjabloon implementeren
Wanneer u de gekoppelde sjabloon implementeert, worden zowel de webtoepassing als het opslagaccount geïmplementeerd. De implementatie is hetzelfde als het implementeren van andere ARM-sjablonen.
New-AzResourceGroup `
-Name webRG `
-Location westus2
New-AzResourceGroupDeployment `
-ResourceGroupName webRG `
-TemplateFile "c:\Templates\deployTS\azuredeploy.json" `
-tsResourceGroup templateSpecRg `
-tsName storageSpec `
-tsVersion 1.0
Volgende stappen
Zie Een sjabloonspecificatie van een gekoppelde sjabloon maken voor meer informatie over het maken van een sjabloonspecificatie die gekoppelde sjablonen bevat.