Meerdere Azure-implementaties onderhouden met behulp van Azure Resource Manager-sjabloontags en parameterbestanden
Er zijn twee functies van ARM-sjablonen (Azure Resource Manager) die u wilt gebruiken wanneer u implementeert in meer dan één Azure-omgeving. Deze functies zijn resourcetags en parameterbestanden voor ARM-sjablonen.
Wanneer u meer resources toevoegt aan uw omgevingen, zult u snel merken dat u een manier nodig hebt om het doel van deze resources te identificeren. Resources hebben hiervoor een tags:
kenmerk. Wanneer u in meer omgevingen implementeert, hebt u een efficiënte manier nodig om de invoerparameters bij te houden. ARM-sjablonen kunnen parameterbestanden gebruiken om parameters voor elke implementatieomgeving te beheren.
Wat is een Azure-resourcetag?
U kunt resources taggen om waarden toe te voegen waarmee u het gebruik ervan kunt identificeren. U kunt bijvoorbeeld tags toevoegen waarin de omgeving en het project waartoe een resource behoort, worden vermeld. U kunt ook tags toevoegen die een kostenplaats identificeren of het team dat eigenaar is van een resource. Voeg waarden toe die zinvol zijn voor uw organisatie.
De tagwaarde wordt weergegeven op de overzichtspagina voor de Azure-resource en in kostenrapporten.
Hoe maak ik een Azure-resourcetag?
Elke resource heeft een tags:
kenmerk. Tot nu toe hebt u de standaard-displayName
gebruikt voor de tag voor uw opslagaccount:
"tags": {
"displayName": "[parameters('storageName')]"
},
Als u dit kenmerk nuttiger wilt maken, kunt u een parameter definiëren met meer informatie en die parameter vervolgens gebruiken in het kenmerk tags:
. U kunt bijvoorbeeld een parameter maken voor het opslaan van een object met de naam resourceTags
:
"resourceTags": {
"type": "object",
"defaultValue": {
"Environment": "Dev",
"Project": "Inventory"
}
}
Hier hebt u een object gemaakt voor het opslaan van waarden voor een omgevingsnaam en een projectnaam, maar u kunt alles definiëren wat u wilt.
Vervolgens kunt u die parameter gebruiken voor elke resource die zich voor de ontwikkelomgeving en het inventarisproject bevindt; Bijvoorbeeld uw opslagaccount.
"resources": [{
"name": "[variables('uniqueStorageName')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"tags": "[parameters('resourceTags')]",
...
}],
Wat is een parameterbestand voor een ARM-sjabloon?
Een ARM-sjabloonparameterbestand bevat waarden die worden doorgegeven aan de ARM-sjabloon wanneer de sjabloon wordt uitgevoerd. Door een parameterbestand te gebruiken voor elke omgeving waarin een ARM-sjabloon wordt geïmplementeerd, moet u ervoor zorgen dat de juiste parameters zijn ingesteld voor die specifieke omgeving. U zorgt er ook voor dat u de geschiedenis en het onderhoud van deze parameterwaarden in broncodebeheer kunt bijhouden.
Hoe gebruik ik parameterbestanden voor ARM-sjablonen?
PARAMETERbestanden voor ARM-sjablonen zijn JSON-bestanden die parameterwaarden bevatten. Voor de parameters die u tot nu toe hebt gebruikt in de ARM-sjabloon, kunt u bijvoorbeeld als volgt een sjabloonparameterbestand maken:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "storage"
},
"storageSKU": {
"value": "Standard_LRS"
},
"resourceTags": {
"value": {
"Environment": "Dev",
"Project": "Learn"
}
}
}
}
Vervolgens kunt u een bestand maken dat vergelijkbaar is met dit bestand voor elke omgeving. Deze bestanden kunnen bijvoorbeeld azuredeploy.parameters.dev.json en azuredeploy.parameters.prod.jsonworden genoemd en verschillende waarden voor de parameters bevatten.
Als u een ARM-sjabloon wilt implementeren met behulp van een parameterbestand, geeft u het pad op naar het parameterbestand in de implementatieopdracht. In Azure CLI gebruikt u --parameters {path to parameter file}
. In PowerShell gebruikt u -TemplateParameterFile {path to parameter file}
.
templateFile="{path-to-the-template-file}"
devParameterFile="{path-to-azuredeploy.parameters.dev.json}"
az group create \
--name myResourceGroupDev \
--location "East US"
az deployment group create \
--name devenvironment \
--resource-group myResourceGroupDev \
--template-file $templateFile \
--parameters $devParameterFile