Using location in a consistent way in your ARM template parameters

When developing your ARM templates in infrastructure-as-code (IaC), I like to narrow down the options for the cloud administrators or teams that will consume my ARM templates.  The location of your resources is a good candidate for this kind of optimization. When managing the location in the parameters section of our ARM templates, the first thing is to have a default value, which would be your default region (in my case Canada Central is home), and make sure that we allow the second geopolitical region (in my case the French region Canada East).

If someone tries to input anything different than Canada regions, the deployment will fail and inform the possible values, which is a good thing.

Note: In my scenario, I use the code because that helps me with the naming convention as well. That is the reason that I don’t ask to provide the full name “CanadaCentral” or “CanadaEast.”

arm template location parameter

The second thing is to create a variable with an if condition that will store the complete name of the region based on the region code provided in the parameters.

arm template location parameter

The third and final touch is to use that variable when defining the location in the resources being provisioned, as depicted in the image below.

By playing with location parameters and a variable, we can guarantee that our ARM template will always get valid regions, and we will force a default region if none is provided. All resources being provisioned will take advantage of the location.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top