Azure Resource Naming Tips 2022


"If you cannot name something then you have not understood its purpose" - Enkat Subramin

We have been working with Azure from its very inception and have seen many client Azure subscriptions. We have seen a lot of interesting attempts at naming Azure resources/services. The main Azure resource group list is typically a big mess of everything in your subscription. Everything is listed in alphabetical order, and it is typically hard to find what you are looking for.

What clients tend to do.

Clients typically go with TitleCase because that's what they are used to when dealing with Microsoft technologies. There are also people who go with camelCase. The problem is that Azure has internal inconsistencies. For example, Azure only allows lowercase for some resources.

There is another quirk with Azure naming where hyphens are allowed in most cases, but not in some (eg. storage account naming). Some clients have opted to just never use hyphens at all. The problem with this is that longresourcenamesarehardtoread.

Azure also auto-generates some naming. For example TitleCase, name-with-hyphens, lowercasenohyphens. It's a mess!

Add to this, the slight problem that many Azure names need to be globally unique within Azure’s entire infrastructure. So you can’t have a storage account called “cnn”, as that’s already taken!

Our Azure naming recommendations.

We have had many heated discussions about Azure naming since its very inception. We believe that a balanced naming convention is the answer. 

Firstly, we have a few rules:

  • Use lowercase
  • Use hyphens where permitted
  • Prefix resources with the resource type
  • Suffix resource group/container/folder names (more info below)

Globally unique Azure naming.

Azure requires some services to be public and globally unique. These look a bit complicated, but once you see the examples we hope it will all make sense. 

Our naming convention concepts:

  • Resource / service common name
    • Resource: Things such as App Services, Database Servers, Storage accounts. Where there is no "typical" abbreviation or documented convention, we make our own suggestions. For example, App Service can be abbreviated to app
    • Service Common Name: Items with generally accepted abbreviations. For example, Virtual Network is typically abbreviated to vnet in Azure documentation, where as Virtual Machine is typically abbreviated to VM.
  • Project 
    • Project: Typically used for internal projects. For example, you may have a project with a code such as COG0123.
    • Client "Projects" can be similarly named. For example, MSN0123
  • Environment / Label
    • Environment: Most companies and agencies have dev and staging environments
    • Label can be a branch name, or a release version
  • Container / Folder / Group
    • Resource Group is an example of a container/folder/group
    • App Service Plan is an example a container/folder/group

Our naming conventions are as follows... 

General Services
<resource/service common name>-<project>-<environment/label>-<organisation>

<resource/service common name>-<project/client>-<environment/label>-<organisation>-<container/folder/group>

App services - example.


Note: There is a 40 character limit for App Service Plan names.


  • project: internal-0123
  • label: v1-2-3
  • organisation: good-names

As you can see the App Service and the App Service Plan appear adjacent in the resource list.

App Service Name

App Service Plan

Resource Group

Public URL

Database servers - example.

<db type>-<environment><-pool<number>><organisation>


  • db type: sql
  • pool & number: pool01
  • organisation: good-names

As you can see, the pool and database server appear adjacent in the resource list.

SQL Server Name

Elastic SQL Pool

Resource Group

Public URL

Databases - example.


Example 1

  • project: internal
  • purpose: umbraco
  • environment: staging

Database Name

Example 2

  • project: internal
  • purpose: custom-data
  • environment: v5-1-0

Database Name

Storage accounts - example.

Unfortunately, Azure storage accounts only allow lowercase with no hyphens. Just close your eyes to this :(



  • purpose: public (publically accessible)
  • organisation: goodnames

Storage Account Name

Resource Group

Public URL

Internal infrastructure.

These following services do NOT require globally unique Azure naming per se. So we have a slightly different approach. However the concepts are very similar.

Unfortunately, Windows VMs have a character limit, so we recommend to abbreviate the organisation name for all internal resources

We generally use: <service>-<organisation>-<descriptor><number>

Virtual machines - example.


Example 1

  • organisation: gn
  • os: win (Windows)
  • number: 01

As you can see, Azure automatically creates a disk, network interface, public IP, network security group, and a vnet. Prefixing the name with "vm" allows all VMs to be ordered in the resource list.


VM Name

Resource Group

vm-gn-win01-<autogenerated number>

Example 2

  • organisation: gn
  • os: ubn (Ubuntu)
  • number: 01

VM Name

Resource Group

Virtual networks - example.

For stand-alone networks, NOT directly associated with Virtual Gateways. 



  • organisation: gn
  • environment: vnet
  • number: 01

VNet Name

Resource Group

Virtual network gateways - example.



  • organisation: gn
  • environment: vnet
  • number: 01​

VNetGateway Name

Public IP

Resource Group

Note: VNet Gateways in Azure require that the Vnet and VnetGateway exist in the same resource group. Since you must create the VNet first, then the VNet Gateway would be added to the VNet's resource group. So as you see the Resource group in this case is actually the resource group of the VNet, and not the VNet Gateway. 

To sum up.

As you hopefully can see, these guidelines can allow you to more effectively see and find your resources. The purpose of these naming guidelines is to group your Azure resources together as much as possible. 

Azure will still try to automatically create various resources. For example, Disks will still be named poorly. However, if you are serious about getting your house in order, then you will get a lot more granular control if you use the Azure API via Powershell.

Another thing to note is character limits. Some items such as App Service Plans have a 40 character limit. In our experience, it's best to keep everything to 40 characters in general, unless you are dealing with Windows Virtual Machines which limit you to 12 characters.

We hope you found this article useful.

  • Image for 3 Ways to Win Consumer Trust With Your Website Strategy

    3 Ways to Win Consumer Trust With Your Website

  • Image for Keeping Up With Digital Transformation Build

    Keeping Up With Digital Transformation

  • Image for How to Use Google Chrome Lighthouse for Better Web Performance Build

    How to Use Google Chrome Lighthouse for Better Web Performance

  • Image for Azure Resource Naming Tips 2022 Build

    Azure Resource Naming Tips 2022

Ready to collaborate ?

Get in touch to see how we can transform your digital presence.

Send us a message