Azure

How to name resources in Azure?

In this article, we’ll look at rules, recommendations, and examples for naming resource names in Azure.

It is important to effectively call resource names from information about each resource, to avoid conflicts, and to ensure readability and understandability of the resources. A good resource name allows you to quickly identify the organization, department, resource type, environment, Azure region, instance, etc.

  1. Azure naming rules
  2. Naming options for constructing resource names
  3. Scope
  4. Examples of resource names

Azure naming rules

For Azure resources, Microsoft recommends following the following naming conventions:

  • Use names in lowercase and separated by hyphens
  • Use letters and numbers, with a maximum of 24 characters.
  • Do not use special characters, such as @, #, $, %, &, *, etc.
  • Do not use Azure reserved words, such as “Azure”, “Microsoft”, etc.
  • Do not use names similar to Azure services, such as “SQL”, “Storage”, etc.
  • Use a descriptive and meaningful name for the resource, such as “my-azure-resource” or “my-app-resource”.
  • If a prefix or suffix is ​​used, make sure it is clear and consistent, such as “app-” or “-prod”.

These conventions help avoid conflicts and maintain the organization and readability of resources on the Azure platform.

Naming rules and restrictions for Azure resources

Naming options for constructing resource names

Here is a list of sample naming options that are useful when constructing resource names. For each type of resource you can use some naming options or others. The intent is to have a standard naming convention that is easy to follow, concise, and useful for recognizing information that is relevant to the created resource.

Naming componentDescription
OrganizationTop-level name of organization, normally utilized as top management group or, in smaller organizations, part of the naming convention. Example: contoso
Business unit or departmentTop-level division of your company that owns the subscription or workload the resource belongs to. In smaller organizations, this component might represent a single corporate top-level organizational element. Examples: fin, mktg, product, it, corp
Resource typeAn abbreviation that represents the type of Azure resource or asset. This component often is used as a prefix or suffix in the name. For more information, see Recommended abbreviations for Azure resource types. Examples: rg, vm
Project, application, or service nameName of a project, application, or service that the resource is a part of. Examples: navigator, emissions, sharepoint, hadoop
EnvironmentThe stage of the development lifecycle for the workload that the resource supports. Examples: prod, dev, qa, stage, test
LocationThe region or cloud provider where the resource is deployed. Examples: westus, eastus2, westeu, usva, ustx
VM roleIdentifier for the purpose of the VM. Examples: db (database), ws (web server), ps (print server)
InstanceThe instance count for a specific resource to identify more than one resource that has the same naming convention. Examples, 01, 001

The order in which the naming options should appear is important.

Scope

Resource names must be unique within their scope.

  • Global – Unique across the Azure platform. For example, PaaS services with public endpoints or virtual machine DNS labels.
  • Resource Group – Unique within the resource group. For example, a virtual network has a resource group scope, which means that there can only be one network called  vnet-prod-westus-001 in a given resource group. Other resource groups might have their own virtual network called vnet-prod-westus-001
  • Resource attribute : Unique within the parent resource. For example: Subnets are scoped to virtual networks so each subnet in a virtual network must have a different name.

Examples of resource names

These are examples with naming considerations, but will vary by organization.

General

Asset typeScopeFormat and examples
Management groupBusiness unit and/or
environment
mg-<business unit>[-<environment>]

  • mg-mktg
  • mg-hr
  • mg-corp-prod
  • mg-fin-client
  • SubscriptionAccount / enterprise agreement<business unit>-<subscription purpose>-<###>

  • mktg-prod-001
  • corp-shared-001
  • fin-client-001
  • Resource groupSubscriptionrg-<app or service name>-<subscription purpose>-<###>

  • rg-mktgsharepoint-prod-001
  • rg-acctlookupsvc-shared-001
  • rg-ad-dir-services-shared-001
  • API management service instanceGlobalapim-<app or service name>

    apim-navigator-prod
    Managed identityResource groupid-<app or service name>-<environment>-<region name>-<###>

  • id-appcn-keda-prod-eastus2-001
  • networking

    Asset typeScopeFormat and examples
    Virtual networkResource groupvnet-<subscription purpose>-<region>-<###>

  • vnet-shared-eastus2-001
  • vnet-prod-westus-001
  • vnet-client-eastus2-001
  • SubnetVirtual networksnet-<subscription purpose>-<region>-<###>

  • snet-shared-eastus2-001
  • snet-prod-westus-001
  • snet-client-eastus2-001
  • Network interface (NIC)Resource groupnic-<##>-<vm name>-<subscription purpose>-<###>

  • nic-01-dc1-shared-001
  • nic-02-vmhadoop1-prod-001
  • nic-02-vmtest1-client-001
  • Public IP addressResource grouppip-<vm name or app name>-<environment>-<region>-<###>

  • pip-dc1-shared-eastus2-001
  • pip-hadoop-prod-westus-001
  • Load balancerResource grouplb-<app name or role>-<environment>-<###>

  • lb-navigator-prod-001
  • lb-sharepoint-dev-001
  • Network security group (NSG)Subnet or NICnsg-<policy name or app name>-<###>

  • nsg-weballow-001
  • nsg-rdpallow-001
  • nsg-sqlallow-001
  • nsg-dnsblocked-001
  • Local network gatewayVirtual gatewaylgw-<subscription purpose>-<region>-<###>

  • lgw-shared-eastus2-001
  • lgw-prod-westus-001
  • lgw-client-eastus2-001
  • Virtual network gatewayVirtual networkvgw-<subscription purpose>-<region>-<###>

  • vgw-shared-eastus2-001
  • vgw-prod-westus-001
  • vgw-client-eastus2-001
  • Site-to-Site connectionResource groupcn-<local gateway name>-to-<virtual gateway name>

  • cn-lgw-shared-eastus2-001-to-vgw-shared-eastus2-001
  • cn-lgw-shared-eastus2-001-to-vgw-shared-westus-001
  • VPN connectionResource groupcn-<subscription1 purpose>>-<region1>-to-<subscription2 purpose>>-<region2>-

  • cn-shared-eastus2-to-shared-westus
  • cn-prod-eastus2-to-prod-westus
  • Route tableResource grouproute-<route table name>

  • route-navigator
  • route-sharepoint
  • DNS labelGlobal<DNS A record for VM>.<region>.cloudapp.azure.com

  • dc1.westus.cloudapp.azure.com
  • web1.eastus2.cloudapp.azure.com
  • Compute and Web

    Asset typeScopeFormat and examples
    Virtual machineResource groupvm<vm role><environment><###>

  • vmsqltest001
  • vmhadoopprod001
  • Web appGlobalapp-<project, app or service>-<environment>-<###>.azurewebsites.net

  • app-navigator-prod-001.azurewebsites.net
  • app-accountlookup-dev-001.azurewebsites.net
  • Function appGlobalfunc-<project, app or service>-<environment>-<###>.azurewebsites.net

  • func-navigator-prod-001.azurewebsites.net
  • func-accountlookup-dev-001.azurewebsites.net
  • Databases

    Asset typeScopeFormat and examples
    Azure SQL databaseAzure SQL Databasesqldb-<project, app or service>-<environment>

  • sqldb-users-prod
  • sqldb-users-dev
  • Azure Cosmos DB databaseGlobalcosmos-<project, app or service>-<environment>

  • cosmos-navigator-prod
  • cosmos-emissions-dev
  • Azure Cache for Redis instanceGlobalredis-<project, app or service>-<environment>

  • redis-navigator-prod
  • redis-emissions-dev
  • Storage

    Asset typeScopeFormat and examples
    Storage account (general use)Globalst<project, app or service><###>

  • stnavigatordata001
  • stemissionsoutput001
  • Azure StorSimpleGlobalssimp<project, app or service><environment>

  • ssimpnavigatorprod
  • ssimpemissionsdev
  • Azure Container RegistryGlobalcr<project, app or service><environment><###>

  • crnavigatorprod001
  • AI and machine learning

    Asset typeScopeFormat and examples
    Azure Cognitive SearchGlobalsrch-<project, app or service>-<environment>

  • srch-navigator-prod
  • srch-emissions-dev
  • Azure Cognitive ServicesResource groupcog-<project, app or service>-<environment>

  • cog-navigator-prod
  • cog-emissions-dev
  • Azure Machine Learning workspaceResource groupmlw-<project, app or service>-<environment>

  • mlw-navigator-prod
  • mlw-emissions-dev
  • Analytics and IoT

    Asset typeScopeFormat and examples
    Azure Data FactoryGlobaladf-<project, app or service>-<environment>

  • adf-navigator-prod
  • adf-emissions-dev
  • Azure Stream AnalyticsResource groupasa-<project, app or service>-<environment>

  • asa-navigator-prod
  • asa-emissions-dev
  • Data Lake Storage accountGlobaldls<project, app or service><environment>

  • dlsnavigatorprod
  • dlsemissionsdev
  • IoT hubGlobaliot-<project, app or service>-<environment>

  • iot-navigator-prod
  • iot-emissions-dev
  • Integration

    Asset typeScopeFormat and Examples
    Service BusGlobalsb-<project, app or service>-<environment>.servicebus.windows.net

  • sb-navigator-prod.servicebus.windows.net
  • sb-emissions-dev.servicebus.windows.net
  • Service Bus queueService Bussbq-<query descriptor>

  • sbq-messagequery
  • Service Bus topicService Bussbt-<query descriptor>

  • sbt-messagequery
  • Conclusion

    In conclusion, it is important to take into account some nomenclature considerations. These include using unique and easily identifiable names for each resource, following naming rules and limitations specific to each type of resource, and maintaining a logical and consistent naming structure to facilitate resource organization and management. It is also important to consider integration with other systems and the possibility of future changes in the nomenclature.