Azure Resource Manager (ARM) is Microsoft’s new way of provisioning Azure infrastructure and services. One of the many great features of ARM is that it allows us to create JSON template files which describe the Azure services (and their relationships) we wish to deploy. These templates can then be uploaded to Azure for deployment.
Once we have created an ARM template it is very easy to deploy the template across many Azure subscriptions with out the potential errors that deploying the services by hand may result in.
There are many ways that ARM templates can be created but in this blog post I want to focus on using Visual Studio. Why Visual Studio ? Well I am an IT Pro not a Programmer, so while I understand how to use the Azure portals and I get PowerShell and the Azure CLI. I have never had any experience using Visual Studio and always thought it was a tool for Dev’s. When I read that you could use Visual Studio to deploy ARM templates to Azure as well as create them, I was interested to find out more.
Now I don’t pretend to know how to use Visual Studio, and I am sure that I am only using a very small part of the software package, but what follows, are the steps that I have used to create an ARM template in Visual Studio and deploy the template to Azure.
First up you can download Visual Studio here
Once Visual Studio is installed select File, New, Project
Visual Studio Create New Project screen
The New Project screen will be displayed
Select Visual C#, Cloud, Azure Resource Group
Visual Studio New Project popup
Next Visual Studio will display a list of pre made Azure Resource Manager templates, to select a blank template scroll to the bottom of the list and select Blank Template.
Visual Studio Azure Template popup
Visual Studio will now create a new Azure Resource manager project. On the right hand side of the screen the Solution Explorer box will show the contents of the project. Under scripts is the PowerShell script that Visual Studio will use to deploy the template to Azure and in the templates folder you will find the ARM templates. Double click on the DeploymentTemplate.json file to open it.
Azure ARM Template
To add resources to the deployment template right click on the word resource as per the screenshot below and select ‘Add New Resource’
Add New Resource to template
This will open the Add Resource pop up from which you can select the Azure Resources you wish to deploy.
New Resource popup
Once you have added all the Azure Resources and linked them together you can test deploying your template to your Azure subscription. To do this right click on the name of your project in the Solution Explorer and select Deploy, New Deployment.
Deploy ARM Template to Azure
This will open the Deploy to Resource Group pop up and will prompt you to log in to your Azure subscription. Clicking ‘Edit Parameters’ will bring up the Parameters dialog box which will allow you to add values for the parameters that you created when you made the ARM template.
Subscription selection screen and parameters pop up window
Clicking Deploy will deploy your ARM template to the selected resource group in your Azure Subscription.
One last thing to note….. Visual Studio uses PowerShell to deploy the ARM Template, which is all good, however with the release of Azure PowerShell 1.0 many of the Azure commands have changed. Visual Studio creates a PowerShell deployment script that uses PowerShell 0.98 commands. If you are using PowerShell 1.0 or greater you will need to update some of the commands in the PowerShell deployment script that gets created. Check out the following blog post for more info
If an error is displayed stating that Switch-AzureMode is not recognised it is highly likely that you have PowerShell 1.0 installed and as such will need to follow the directions in the link above to update the deployment PowerShell script with the new 1.0 Azure commands.