Cloud Resource Naming Convention Generator & Checker
One naming standard, fitted to every resource type’s limits, with existing names checked.
Try before you buy.
- Free preview: three of the generated names and the first three checked names (at most half of a shorter list), with the counts.
- Locked until you unlock it: download and copy.
- Unlock: Premium pass, ₹799 for 30 days or ₹249 for 1 week, a one-time payment that never renews. Unlock: Premium pass, $19.99 for 30 days or $7.99 for 1 week, a one-time payment that never renews.
Ways to unlock shows how to get the full result.
Printing this result is locked in the free preview.
Naming standard
Resource types
Choose the types to name. The abbreviation starts each name (clear it to leave the type out); the ones listed are the provider’s own where it publishes some.
| Use | Resource type | Abbreviation |
|---|---|---|
| Azure | ||
| Microsoft.Resources/resourceGroups | ||
| Microsoft.Storage/storageAccounts | ||
| Microsoft.Storage/storageAccounts/blobServices/containers | ||
| Microsoft.Network/virtualNetworks | ||
| Microsoft.Network/virtualNetworks/subnets | ||
| Microsoft.Network/networkSecurityGroups | ||
| Microsoft.Network/publicIPAddresses | ||
| Microsoft.Network/loadBalancers | ||
| Microsoft.Network/loadBalancers | ||
| Microsoft.Network/networkInterfaces | ||
| Microsoft.Compute/virtualMachines | ||
| Microsoft.Compute/virtualMachines | ||
| Microsoft.KeyVault/vaults | ||
| Microsoft.Web/sites | ||
| Microsoft.Web/sites | ||
| Microsoft.Web/serverfarms | ||
| Microsoft.Sql/servers | ||
| Microsoft.Sql/servers/databases | ||
| Microsoft.ContainerService/managedClusters | ||
| Microsoft.ContainerRegistry/registries | ||
| Microsoft.DocumentDB/databaseAccounts | ||
| Microsoft.OperationalInsights/workspaces | ||
| Microsoft.Insights/components | ||
| Microsoft.ServiceBus/namespaces | ||
| Microsoft.EventHub/namespaces | ||
| Microsoft.ManagedIdentity/userAssignedIdentities | ||
| Microsoft.ContainerInstance/containerGroups | ||
| Microsoft.DataFactory/factories | ||
| AWS | ||
| S3 general purpose bucket | ||
| Lambda function | ||
| IAM role | ||
| DynamoDB table | ||
| SQS queue | ||
| SQS FIFO queue | ||
| SNS topic | ||
| RDS DB instance identifier | ||
| Elastic Load Balancing v2 load balancer | ||
| EKS cluster | ||
| ECR repository | ||
| CloudWatch Logs log group | ||
| EC2 instance tag “Name” | ||
| Google Cloud | ||
| Cloud Storage bucket | ||
| Compute Engine instance | ||
| Compute Engine network | ||
| Compute Engine subnetwork | ||
| Project ID | ||
| Pub/Sub topic | ||
| Pub/Sub subscription | ||
| GKE cluster | ||
| Cloud Run service | ||
| IAM service account | ||
| BigQuery dataset | ||
| Kubernetes | ||
| Namespace | ||
| Service | ||
| Deployment | ||
| StatefulSet | ||
| ConfigMap | ||
| Secret | ||
Names
| Resource type | Name | Length | Unique within | Changes and checks |
|---|
Documents and files
The standard with every resource type’s name, rules and pattern, the tags and the checked names; the bulk file has every combination of the values.
Check existing names
A type is its name (Storage account), with the provider’s name in front when two providers have one by that name, or the provider’s own name for the type. A CSV file with a name and a type column works too; it is read on your device.
| Name | Result | What to fix | Replacement |
|---|
Save or open this standard
The standard, the types, the tags and the names to check are kept in this browser. A setup file takes them to another browser or a colleague.
Locked in the free preview. Opens the ways to unlock this result.
Locked in the free preview. Batch runs unlock with a pass.
Locked in the free preview. Query results unlock with a pass.
About the Cloud Resource Naming Convention Generator & Checker
Write one naming standard for your cloud and see the name it gives every resource type. Put the parts in order — organisation, workload, environment, region, instance number, the type’s abbreviation, or parts of your own — with their codes, then choose the separator and the letters. Each type then gets its name within its own rules: a type that refuses hyphens gets another separator or none, one that refuses capitals gets lowercase, and a name that is too long is shortened, with every change said beside it.
The page knows the published naming rules of 58 resource types of three public clouds and Kubernetes: length, characters, first and last character, repeated separators, reserved prefixes and endings, and where the name must be unique. Paste existing names, or open a CSV file, to check them against those rules and your standard, with a replacement for each one that fails. Add the tags every resource carries, checked against each provider’s tag rules. Everything is worked out in your browser. Without a pass the result is a free preview: the counts, three of the names and the first three checked names; every name, the document (Markdown, Word, PDF), the bulk CSV, the patterns and the JSON unlock with a Premium pass.
How to use it
- Set the parts of every name in order, with the codes each one takes (prd = Production, weu = West Europe), the separator and the letters.
- Choose the resource types to name; change an abbreviation, or clear it to leave the type out of that name.
- Read the name each type gets: where a type refuses the separator, capitals or the length, the name is adapted and the change is said.
- Paste existing names (or open a CSV file) to check them against the rules and the standard, with a replacement for each one that fails.
- List the tags every resource carries, with the values allowed, and fix what a provider would refuse.
- With a Premium pass, download the standard as Markdown, Word or PDF, the bulk CSV of names, the patterns and the JSON (the free preview shows three names and three checked names).
Examples
st · acme · shop · prd · weu · 001, joined by hyphens
stacmeshopprdweu001
Storage account names take lowercase letters and digits only, so the separators go.
kv · acme · shop · prd · weu · 001
kv-acme-shop-prd-weu-001 (24 characters: the limit exactly)
vm · acme · shop · prd · weu · 001
vmacshprdweu001
Without separators it is still too long, so the organisation and the workload are cut to two letters.
kv-acme-shop-production-weu-001 (key vault)
31 characters, 24 at most; “production” is not one of prd, stg, dev. Replacement: kv-acme-shop-prd-weu-001
Common uses
- Writing the naming standard of a platform or cloud team, with the exceptions each resource type forces worked out.
- Getting the names of a new environment (every workload, environment and region) ready before the infrastructure code is written.
- Checking an export of existing resource names against the standard, with replacements to plan renames.
- Adding the patterns to a pipeline so names that break the standard are caught before deployment.
- Agreeing the tags (labels) every resource carries, in a form every provider in use accepts.
How each type gets its name
- Separator: the one you chose where the type allows it; otherwise a hyphen or an underscore it allows; otherwise none.
- Letters: lowercase wherever the type refuses capitals, whatever you chose.
- Values: characters the type refuses are dropped, and separators inside a value become the name’s separator.
- Length: when a name is too long, the parts with other values allowed — the workload, the organisation and your own parts — are cut, longest first, down to three characters; if that is not enough the separators go, and then the cut goes down to two. Codes for the environment, region and instance number are never cut.
- Child resources and Kubernetes objects: a part can be left out of them (the organisation inside a parent resource, the region inside a cluster).
- Fixed endings: a FIFO queue’s name gets “.fifo”, counted in its length.
What the checker looks at
Each name is checked against its type’s rules — length, characters, the first and the last character, two separators in a row, reserved prefixes and endings, a name shaped like an IP address — and against the standard: the parts in order, the codes listed for each, the separator and the letters. A replacement keeps what the name says: an environment written out (“production”, “staging”) becomes the standard’s code for it, a region written out becomes its code, a number becomes the instance number, and words the standard does not know become the workload. Parts the name lacks get the standard’s first code, and every change is listed.
Patterns for automated checks
Each type gets one regular expression for its names under the standard: the listed codes as alternatives, parts with other values allowed as runs of letters and digits (or one of their own codes, such as web-api), the instance number as its digits. Where the longest names have to be shortened, the shortened forms are accepted too. The syntax is the one JavaScript, PCRE, Python and RE2 share (no look-around), so the same line works in a script, a policy or a pipeline; the length is checked apart, and the JSON file holds each type’s limits.
Sources
- <https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules>
- <https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-abbreviations>
- <https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-naming>
- <https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-resources>
- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html>
- <https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html>
- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html>
- <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html>
- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html>
- <https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html>
- <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html>
- <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateLoadBalancer.html>
- <https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCluster.html>
- <https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_CreateRepository.html>
- <https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html>
- <https://docs.aws.amazon.com/tag-editor/latest/userguide/best-practices-and-strats.html>
- <https://docs.cloud.google.com/storage/docs/buckets>
- <https://docs.cloud.google.com/compute/docs/naming-resources>
- <https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects>
- <https://docs.cloud.google.com/pubsub/docs/pubsub-basics>
- <https://docs.cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters>
- <https://docs.cloud.google.com/run/docs/deploying>
- <https://docs.cloud.google.com/run/docs/reference/rest/v2/projects.locations.services/create>
- <https://docs.cloud.google.com/iam/docs/service-accounts-create>
- <https://docs.cloud.google.com/iam/docs/reference/rest/v1/projects.serviceAccounts/create>
- <https://docs.cloud.google.com/bigquery/docs/datasets>
- <https://docs.cloud.google.com/resource-manager/docs/labels-overview>
- <https://kubernetes.io/docs/concepts/overview/working-with-objects/names/>
- <https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/>
- <https://kubernetes.io/docs/concepts/services-networking/service/>
- <https://kubernetes.io/docs/concepts/workloads/controllers/deployment/>
- <https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/>
- <https://kubernetes.io/docs/concepts/configuration/configmap/>
- <https://kubernetes.io/docs/concepts/configuration/secret/>
- <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/>
- <https://kubernetes.io/docs/reference/kubectl/>
Limitations
- The rules are the ones each provider publishes for the type; a provider can refuse a name for a reason it only gives when the resource is created.
- Whether a name that must be unique everywhere is still available can only be found by creating it: the page says which types need such a name.
- Where the documentation gives no character set (one container service’s), the page uses lowercase letters, digits and hyphens.
- Up to 58 resource types; the bulk file holds up to 100,000 names and the checker reads up to 5,000 lines.
- The PDF prints Latin letters; other scripts print as “?” there, while the Word, Markdown, CSV and JSON files keep them.
- The free preview shows three of the names and the first three checked names (at most half of a shorter list).
Privacy
On this device: nothing is sent
Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.
Frequently asked questions
What do I get without a pass?
Without a pass, Cloud Resource Naming Convention Generator & Checker shows three of the generated names and the first three checked names (at most half of a shorter list), with the counts. Until you unlock it, the result can’t be downloaded or copied. A Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.
Which abbreviations does it use?
For the types of the provider that publishes an abbreviation list, its abbreviations; for Kubernetes objects, kubectl’s short names; for the rest, short forms suggested here. Change any of them in the list of resource types, or clear one to leave the type out of its names.
What happens when a name is too long for a type?
The parts with other values allowed (the workload, the organisation and your own parts) are cut to three characters, longest first; if that is not enough the separators go, and then the cut goes down to two. The environment, region and instance codes are never cut, and every change is listed beside the name.
Does it check whether a name is already taken?
No. Names that must be unique across every customer (storage accounts, buckets, key vaults, web apps, project IDs) can only be tried when the resource is created. The table says which types need such a name, and an organisation code in them makes a clash unlikely.
Can I use the patterns in a pipeline?
Yes: one regular expression per type, in the syntax JavaScript, PCRE, Python and RE2 share. Check the length apart: the JSON file has each type’s limits, its pattern and an example name.
What does the free preview show?
The counts, three of the generated names and the first three checked names (at most half of a shorter list), and every problem in your own input. The other names and checked names, and every file, need a Premium pass.
Is anything uploaded?
No. The standard, the names you check and any file you open stay in your browser.