Azure Resource Templates - Crash Course
Azure resource templates are a declarative JSON file which describes a load of resources which you want to create on an Azure subscription. They are generally triggered through PowerShell. If you haven’t used Azure PowerShell before, follow the first two points from this simple MS tutorial on Getting started with Azure PowerShell.
How do I get a template?
-
As they’re just JSON files, you could craft one from scratch. I don’t recommend it!
-
There is a huge gallery of Azure QuickStart Templates which you can fire up through this special section of the Azure site.
-
The templates from above are actually drawn from the library of Azure QuickStart Templates on GitHub, so you can download them from there and tweak for your use case.
-
Export a template from an existing online resource group. This is as easy as
Export-AzureRmResourceGroup -ResourceGroupName beaconlanguages
How do I run a template?
Log into the Azure account where you want to run the template. If that’s a different account to the one you’re currently signed in as, use Login-AzureRmAccount
again.
To see who you’re currently logged in as, use Get-AzureRmContext
Run a template with New-AzureRmResourceGroupDeployment
:
New-AzureRmResourceGroupDeployment
-ResourceGroupName ExampleGroup
-TemplateFile C:\Users\exampleuser\ExampleGroup.json
-storageAccountType Standard_LRS
At the top of your JSON file are a load of parameters which you can define, like:
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
...
…each of these can be set as a runtime parameter to the New-AzureRmResourceGroupDeployment
command. So in the PowerShell example above we set the storageAccountType
parameter to Standard_LRS
. This value is found in the list of allowedValues, so it’s valid. Otherwise, the template deployment would fail with an error message. Handy validation! If you don’t set a value, the defaultValue
is used.
How do I tune an exported template?
There are some hints about customizing an exported template on this MS tutorial.
[WIP]: I intend to come back to this article and extend it :)
Written 2017-07-12