Convenções de nomenclatura para recursos do AzureNaming conventions for Azure resources

Este artigo é um resumo das regras de nomenclatura e restrições para recursos do Azure e um conjunto de linha de base de recomendações para convenções de nomenclatura.This article is a summary of the naming rules and restrictions for Azure resources and a baseline set of recommendations for naming conventions. Pode utilizar estas recomendações como ponto de partida para as suas próprias convenções específicas para as suas necessidades.You can use these recommendations as a starting point for your own conventions specific to your needs.

A escolha de um nome para qualquer recurso no Microsoft Azure é importante porque:The choice of a name for any resource in Microsoft Azure is important because:

  • É difícil alterar um nome mais tarde.It is difficult to change a name later.
  • Os nomes têm de cumprir os requisitos do respetivo tipo de recurso específico.Names must meet the requirements of their specific resource type.

Convenções de nomenclatura consistentes facilitam a localização dos recursos.Consistent naming conventions make resources easier to locate. Também pode indicar a função de um recurso numa solução.They can also indicate the role of a resource in a solution.

A chave para o sucesso das convenções de nomenclatura é estabelecê-las e segui-las nas suas aplicações e organizações.The key to success with naming conventions is establishing and following them across your applications and organizations.

Nomenclatura de subscriçõesNaming subscriptions

Quando atribuir nomes a subscrições do Azure, os nomes verbosos facilitam a compreensão do contexto e da finalidade de cada subscrição.When naming Azure subscriptions, verbose names make understanding the context and purpose of each subscription clear. Quando trabalhar num ambiente com muitas subscrições, seguir uma convenção de nomenclatura partilhada pode melhorar a clareza.When working in an environment with many subscriptions, following a shared naming convention can improve clarity.

Padrão recomendado para a nomenclatura de subscrições:A recommended pattern for naming subscriptions is:

<Company> <Department (optional)> <Product Line (optional)> <Environment>

  • Normalmente, a empresa será a mesma para cada subscrição.Company would usually be the same for each subscription. No entanto, algumas empresas podem ter empresas secundarias na estrutura organizacional.However, some companies may have child companies within the organizational structure. Estas empresas podem ser geridas por um grupo central de TI.These companies may be managed by a central IT group. Nestes casos, podem ser diferenciadas ao incluir o nome da empresa principal (Contoso) e o nome da empresa secundária (Northwind).In these cases, they could be differentiated by having both the parent company name (Contoso) and child company name (Northwind).
  • Departamento é um nome da organização que contém um grupo de indivíduos.Department is a name within the organization that contains a group of individuals. Este item no espaço de nomes é opcional.This item within the namespace is optional.
  • Linha de produto é um nome específico para um produto ou função efetuada a partir do departamento.Product line is a specific name for a product or function that is performed from within the department. Geralmente, é opcional para aplicações e serviços internos.This is generally optional for internal-facing services and applications. No entanto, é altamente recomendada a utilização em serviços destinados ao público que requerem separação e identificação fáceis (por exemplo, para uma separação clara dos registos de faturação).However, it is highly recommended to use for public-facing services that require easy separation and identification (such as for clear separation of billing records).
  • Ambiente é o nome que descreve o ciclo de vida de implementação das aplicações ou serviços, tais como Dev, QA ou Prod.Environment is the name that describes the deployment lifecycle of the applications or services, such as Dev, QA, or Prod.
EmpresaCompany DepartamentoDepartment Linha de Produto ou ServiçoProduct Line or Service AmbienteEnvironment Nome CompletoFull Name
ContosoContoso SocialGamingSocialGaming AwesomeServiceAwesomeService ProduçãoProduction Contoso SocialGaming AwesomeService ProduçãoContoso SocialGaming AwesomeService Production
ContosoContoso SocialGamingSocialGaming AwesomeServiceAwesomeService DevDev Contoso SocialGaming AwesomeService DevContoso SocialGaming AwesomeService Dev
ContosoContoso TIIT InternalAppsInternalApps ProduçãoProduction Contoso TI InternalApps ProduçãoContoso IT InternalApps Production
ContosoContoso TIIT InternalAppsInternalApps DevDev Contoso TI InternalApps DevContoso IT InternalApps Dev

Para obter mais informações sobre como organizar as subscrições para as grandes empresas, consulte estrutura empresarial do Azure - governação de subscrições prescritiva.For more information on how to organize subscriptions for larger enterprises, see Azure enterprise scaffold - prescriptive subscription governance.

Utilizar afixos para evitar ambiguidadeUse affixes to avoid ambiguity

Quando atribuir nomes a recursos no Azure, é recomendada a utilização de prefixos ou sufixos comuns para identificar o tipo e o contexto do recurso.When naming resources in Azure, it is recommended to use common prefixes or suffixes to identify the type and context of the resource. Embora todas as informações sobre o tipo, os metadados e o contexto estejam disponíveis através de programação, a aplicação de afixos comuns simplifica a identificação visual.While all the information about type, metadata, context, is available programmatically, applying common affixes simplifies visual identification. Quando incorporar afixos na convenção de nomenclatura, é importante especificar claramente se o afixo está no início do nome (prefixo) ou no fim (sufixo).When incorporating affixes into your naming convention, it is important to clearly specify whether the affix is at the beginning of the name (prefix) or at the end (suffix).

Por exemplo, existem dois nomes possíveis para um serviço que aloja um motor de cálculo:For instance, here are two possible names for a service hosting a calculation engine:

  • SvcCalculationEngine (prefixo)SvcCalculationEngine (prefix)
  • CalculationEngineSvc (sufixo)CalculationEngineSvc (suffix)

Os afixos podem fazer referência a diferentes aspetos que descrevem os recursos específicos.Affixes can refer to different aspects that describe the particular resources. A tabela seguinte mostra alguns exemplos utilizados normalmente.The following table shows some examples typically used.

AspetoAspect ExemploExample NotasNotes
AmbienteEnvironment dev, prod, QAdev, prod, QA Identifica o ambiente do recursoIdentifies the environment for the resource
LocalizaçãoLocation uw (E.U.A. Oeste), ue (E.U.A. Leste)uw (US West), ue (US East) Identifica a região na qual o recurso está implementadoIdentifies the region into which the resource is deployed
InstânciaInstance 1, 2,...1, 2, ... Para os recursos com mais do que uma instância nomeada como VMs ou NICs.For resources that have more than one named instance such as VMs or NICs.
Produto ou ServiçoProduct or Service serviçoservice Identifica o produto, aplicação ou serviço que o recurso suportaIdentifies the product, application, or service that the resource supports
FunçãoRole sql, web, mensagenssql, web, messaging Identifica a função do recurso associadoIdentifies the role of the associated resource

Ao desenvolver uma convenção de nomenclatura específica da sua empresa ou projetos, é importante escolher um conjunto comum de afixos e a respetiva posição (sufixo ou prefixo).When developing a specific naming convention for your company or projects, it is important to choose a common set of affixes and their position (suffix or prefix).

Regras e restrições de nomenclaturaNaming rules and restrictions

Cada tipo de recurso ou serviço no Azure impõe um conjunto de restrições e o âmbito de nomenclatura; qualquer convenção de nomenclatura ou padrão tem de respeitar as regras e o âmbito de nomenclatura.Each resource or service type in Azure enforces a set of naming restrictions and scope; any naming convention or pattern must adhere to the requisite naming rules and scope. Por exemplo, embora o nome de uma VM seja mapeado para um nome DNS (e, por conseguinte, tenha de ser exclusivo em todo o Azure), o nome de uma VNET tem um âmbito do Grupo de Recursos onde foi criado.For example, while the name of a VM maps to a DNS name (and is thus required to be unique across all of Azure), the name of a VNET is scoped to the Resource Group that it is created within.

Em geral, evite carateres especiais (- ou _) como primeiro ou último caráter em qualquer nome.In general, avoid having any special characters (- or _) as the first or last character in any name. Estes carateres causarão a falha da maioria das regras de validação.These characters will cause most validation rules to fail.

GeralGeneral

EntidadeEntity ÂmbitoScope ComprimentoLength Maiúsculas e MinúsculasCasing Carateres VálidosValid Characters Padrão SugeridoSuggested Pattern ExemploExample
Grupo de RecursosResource Group SubscriçãoSubscription 1-901-90 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, caráter de sublinhado, parênteses, hífen, período (exceto no fim) e caracteres Unicode que corresponder ao regex documentado aqui.Alphanumeric, underscore, parentheses, hyphen, period (except at end), and Unicode characters that match the regex documented here. <service short name>-<environment>-rg profx-prod-rg
Conjunto de DisponibilidadeAvailability Set Grupo de RecursosResource Group 1-801-80 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, caráter de sublinhado e hífenAlphanumeric, underscore, and hyphen <service-short-name>-<context>-as profx-sql-as
EtiquetaTag Entidade AssociadaAssociated Entity 512 (nome), 256 (valor)512 (name), 256 (value) Não sensível a maiúsculas e minúsculasCase insensitive AlfanuméricoAlphanumeric "key" : "value" "department" : "Central IT"

ComputaçãoCompute

EntidadeEntity ÂmbitoScope ComprimentoLength Maiúsculas e MinúsculasCasing Carateres VálidosValid Characters Padrão SugeridoSuggested Pattern ExemploExample
Máquina VirtualVirtual Machine Grupo de RecursosResource Group 1-15 (Windows), 1-64 (Linux)1-15 (Windows), 1-64 (Linux) Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico e hífenAlphanumeric and hyphen <name>-<role>-vm<number> profx-sql-vm1
Aplicação de FunçõesFunction App GlobalGlobal 1-601-60 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico e hífenAlphanumeric and hyphen <name>-func calcprofit-func

Nota

As máquinas virtuais no Azure têm dois nomes distintos: nome da máquina virtual e nome do anfitrião.Virtual machines in Azure have two distinct names: virtual machine name, and host name. Quando cria uma VM no portal, é utilizado o mesmo nome para o anfitrião e o recurso da máquina virtual.When you create a VM in the portal, the same name is used for both the host name, and the virtual machine resource name. As restrições acima destinam-se ao nome do anfitrião.The restrictions above are for the host name. O nome do recurso real pode ter até 64 carateres.The actual resource name can have up to 64 characters.

ArmazenamentoStorage

EntidadeEntity ÂmbitoScope ComprimentoLength Maiúsculas e MinúsculasCasing Carateres VálidosValid Characters Padrão SugeridoSuggested Pattern ExemploExample
Nome da conta de armazenamento (dados)Storage account name (data) GlobalGlobal 3-243-24 MinúsculasLowercase AlfanuméricoAlphanumeric <globally unique name><number> (utilize uma função para calcular um guid exclusivo para a nomenclatura de contas de armazenamento)<globally unique name><number> (use a function to calculate a unique guid for naming storage accounts) profxdata001
Nome da conta de armazenamento (discos)Storage account name (disks) GlobalGlobal 3-243-24 MinúsculasLowercase AlfanuméricoAlphanumeric <vm name without hyphens>st<number> profxsql001st0
Nome do contentorContainer name Conta de armazenamentoStorage account 3-633-63 MinúsculasLowercase Alfanumérico e hífenAlphanumeric and hyphen <context> logs
Nome do blobBlob name ContentorContainer 1-10241-1024 Sensível a maiúsculas e minúsculasCase sensitive Quaisquer carateres de URLAny URL characters <variable based on blob usage> <variable based on blob usage>
Nome da filaQueue name Conta de armazenamentoStorage account 3-633-63 MinúsculasLowercase Alfanumérico e hífenAlphanumeric and hyphen <service short name>-<context>-<num> awesomeservice-messages-001
Nome da tabelaTable name Conta de armazenamentoStorage account 3-633-63 Não sensível a maiúsculas e minúsculasCase insensitive AlfanuméricoAlphanumeric <service short name><context> awesomeservicelogs
Nome de ficheiroFile name Conta de armazenamentoStorage account 3-633-63 MinúsculasLowercase AlfanuméricoAlphanumeric <variable based on blob usage> <variable based on blob usage>
Data Lake StoreData Lake Store GlobalGlobal 3-243-24 MinúsculasLowercase AlfanuméricoAlphanumeric <name>dls telemetrydls

RedesNetworking

EntidadeEntity ÂmbitoScope ComprimentoLength Maiúsculas e MinúsculasCasing Carateres VálidosValid Characters Padrão SugeridoSuggested Pattern ExemploExample
Rede Virtual (VNet)Virtual Network (VNet) Grupo de RecursosResource Group 2-642-64 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen, caráter de sublinhado e períodoAlphanumeric, hyphen, underscore, and period <service short name>-vnet profx-vnet
SubredeSubnet VNet PrincipalParent VNet 2-802-80 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen, caráter de sublinhado e períodoAlphanumeric, hyphen, underscore, and period <descriptive context> web
Interface de RedeNetwork Interface Grupo de RecursosResource Group 1-801-80 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen, caráter de sublinhado e períodoAlphanumeric, hyphen, underscore, and period <vmname>-nic<num> profx-sql1-vm1-nic1
Grupo de Segurança de RedeNetwork Security Group Grupo de RecursosResource Group 1-801-80 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen, caráter de sublinhado e períodoAlphanumeric, hyphen, underscore, and period <service short name>-<context>-nsg profx-app-nsg
Regra do Grupo de Segurança de RedeNetwork Security Group Rule Grupo de RecursosResource Group 1-801-80 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen, caráter de sublinhado e períodoAlphanumeric, hyphen, underscore, and period <descriptive context> sql-allow
Endereço IP PúblicoPublic IP Address Grupo de RecursosResource Group 1-801-80 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen, caráter de sublinhado e períodoAlphanumeric, hyphen, underscore, and period <vm or service name>-pip profx-sql1-vm1-pip
Load balancerLoad Balancer Grupo de RecursosResource Group 1-801-80 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen, caráter de sublinhado e períodoAlphanumeric, hyphen, underscore, and period <service or role>-lb profx-lb
Configuração de Regras de Balanceamento de CargaLoad Balanced Rules Config Load balancerLoad Balancer 1-801-80 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen, caráter de sublinhado e períodoAlphanumeric, hyphen, underscore, and period <descriptive context> http
Gateway de Aplicação do AzureAzure Application Gateway Grupo de RecursosResource Group 1-801-80 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen, caráter de sublinhado e períodoAlphanumeric, hyphen, underscore, and period <service or role>-agw profx-agw
Perfil do Gestor de TráfegoTraffic Manager Profile Grupo de RecursosResource Group 1-631-63 Não sensível a maiúsculas e minúsculasCase insensitive Alfanumérico, hífen e períodoAlphanumeric, hyphen, and period <descriptive context> app1

ContentoresContainers

EntidadeEntity ÂmbitoScope ComprimentoLength Maiúsculas e MinúsculasCasing Carateres VálidosValid Characters Padrão SugeridoSuggested Pattern ExemploExample
Registo de ContentorContainer Registry GlobalGlobal 5 a 505-50 Não sensível a maiúsculas e minúsculasCase insensitive AlfanuméricoAlphanumeric <service short name>registry app1registry

Organizar recursos com etiquetasOrganize resources with tags

O Azure Resource Manager suporta a identificação de entidades com cadeias de texto arbitrárias para identificar o contexto e simplificar a automatização.The Azure Resource Manager supports tagging entities with arbitrary text strings to identify context and streamline automation. Por exemplo, a marca "sqlVersion"="sql2014ee" consegue identificar as VMs a executar o SQL Server 2014 Enterprise Edition.For example, the tag "sqlVersion"="sql2014ee" could identify VMs running SQL Server 2014 Enterprise Edition. As etiquetas devem ser utilizadas para aumentar e melhorar o contexto juntamente com as convenções de nomenclatura escolhidas.Tags should be used to augment and enhance context along side of the naming conventions chosen.

Dica

Uma das outras vantagens das etiquetas é abrangerem grupos de recursos, o que permite associar e correlacionar entidades em diferentes implementações.One other advantage of tags is that tags span resource groups, allowing you to link and correlate entities across disparate deployments.

Cada recurso ou grupo de recursos pode ter um máximo de 15 etiquetas.Each resource or resource group can have a maximum of 15 tags. O nome de etiqueta está limitado a 512 caracteres e o valor a 256.The tag name is limited to 512 characters, and the tag value is limited to 256 characters.

Para obter mais informações sobre a identificação de recursos, veja Utilizar etiquetas para organizar os recursos do Azure.For more information on resource tagging, refer to Using tags to organize your Azure resources.

Alguns dos casos de utilização de identificação comuns são:Some of the common tagging use cases are:

  • Faturação.Billing. Agrupar recursos e associá-los a faturação ou estorno códigos de volta.Grouping resources and associating them with billing or charge back codes.
  • Identificação do contexto de serviço.Service Context Identification. Identifique grupos de recursos entre grupos de recursos para agrupamento e operações comuns.Identify groups of resources across Resource Groups for common operations and grouping.
  • Controlo de acesso e contexto de segurança.Access Control and Security Context. Identificação de função administrativa com base no portefólio, sistema, serviço, aplicação, instância, etc.Administrative role identification based on portfolio, system, service, app, instance, etc.

Dica

Etiqueta cedo e marcar frequentemente.Tag early, tag often. É recomendado ter um esquema de identificação de linha de base e ajustar ao longo do tempo, em vez de reajustar posteriormente.Better to have a baseline tagging scheme in place and adjust over time rather than having to retrofit after the fact.

Exemplo de algumas abordagens de identificação comuns:An example of some common tagging approaches:

Nome da EtiquetaTag Name ChaveKey ExemploExample ComentárioComment
ID de Faturação/Estorno InternoBill To / Internal Chargeback ID billTobillTo IT-Chargeback-1234 Código de E/S interno ou de faturaçãoAn internal I/O or billing code
Operador ou Pessoa Diretamente Responsável (DRI)Operator or Directly Responsible Individual (DRI) managedBymanagedBy joe@contoso.com Alias ou endereço de e-mailAlias or email address
Nome do ProjetoProject Name projectNameprojectName myproject Nome do projeto ou da linha de produtosName of the project or product line
Versão do ProjetoProject Version projectVersionprojectVersion 3.4 Versão do projeto ou da linha de produtosVersion of the project or product line
AmbienteEnvironment environmentenvironment <Production, Staging, QA > Identificador ambientalEnvironmental identifier
EscalãoTier tiertier Front End, Back End, Data Identificação do escalão ou da função/contextoTier or role/context identification
Perfil de DadosData Profile dataProfiledataProfile Public, Confidential, Restricted, Internal Sensibilidade dos dados armazenados no recursoSensitivity of data stored in the resource

Sugestões e truquesTips and tricks

Alguns tipos de recursos podem precisar de cuidado adicional na nomenclatura e nas convenções.Some types of resources may require additional care on naming and conventions.

Máquinas virtuaisVirtual machines

Sobretudo nas topologias maiores, uma nomenclatura cuidada das máquinas virtuais simplifica a identificação da função e do objetivo de cada máquina e a ativação de scripts mais previsíveis.Especially in larger topologies, carefully naming virtual machines streamlines identifying the role and purpose of each machine, and enabling more predictable scripting.

Contas e entidades de armazenamentoStorage accounts and storage entities

Existem dois casos de utilização primária para contas de armazenamento: fazer uma segurança de discos para VMs e armazenar os dados em blobs, filas e tabelas.There are two primary use cases for storage accounts: backing disks for VMs, and storing data in blobs, queues and tables. As contas de armazenamento utilizadas para os discos das VMs devem seguir a convenção de nomenclatura de associá-las ao nome da VM principal (e com a necessidade potencial de várias contas de armazenamento para SKUs de VM de ponta, também se aplica um sufixo numérico).Storage accounts used for VM disks should follow the naming convention of associating them with the parent VM name (and with the potential need for multiple storage accounts for high-end VM SKUs, also apply a number suffix).

Dica

As contas de armazenamento, sejam de dados ou de discos, devem seguir uma convenção de nomenclatura que permita utilizar várias contas de armazenamento (ou seja, utilizar sempre um sufixo numérico).Storage accounts - whether for data or disks - should follow a naming convention that allows for multiple storage accounts to be leveraged (i.e. always using a numeric suffix).

É possível configurar um nome de domínio personalizado para aceder aos dados de blobs na sua conta de Armazenamento do Azure.It's possible to configure a custom domain name for accessing blob data in your Azure Storage account. O ponto final predefinido para o serviço de BLOBs é https://<name>.blob.core.windows.net.The default endpoint for the Blob service is https://<name>.blob.core.windows.net.

Mas se mapear um domínio personalizado (como www.contoso.com) para o ponto final do blob para a sua conta de armazenamento, também pode aceder a dados na sua conta de armazenamento de BLOBs através desse domínio.But if you map a custom domain (such as www.contoso.com) to the blob endpoint for your storage account, you can also access blob data in your storage account by using that domain. Por exemplo, com um nome de domínio personalizado, foi possível aceder a https://mystorage.blob.core.windows.net/mycontainer/myblob como https://www.contoso.com/mycontainer/myblob.For example, with a custom domain name, https://mystorage.blob.core.windows.net/mycontainer/myblob could be accessed as https://www.contoso.com/mycontainer/myblob.

Para obter mais informações sobre a configuração desta funcionalidade, veja Configurar um nome de domínio personalizado para o ponto final do armazenamento de Blobs.For more information about configuring this feature, refer to Configure a custom domain name for your Blob storage endpoint.

Para obter mais informações sobre a nomenclatura para blobs, contentores e tabelas, veja a lista seguinte:For more information on naming blobs, containers and tables, refer to the following list:

Um nome de blob pode conter qualquer combinação de carateres, mas os carateres do URL reservados devem ser escritos corretamente.A blob name can contain any combination of characters, but reserved URL characters must be properly escaped. Evite nomes de blobs que terminem com um ponto final (.), uma barra (/) ou uma sequência ou combinação de ambos.Avoid blob names that end with a period (.), a forward slash (/), or a sequence or combination of the two. Por convenção, a barra é o separador de diretório virtual.By convention, the forward slash is the virtual directory separator. Não utilize uma barra invertida (\) num nome de blob.Do not use a backward slash (\) in a blob name. As APIs cliente podem permiti-lo, mas falham a aplicação correta do hash e as assinaturas não corresponderão.The client APIs may allow it, but then fail to hash properly, and the signatures will not match.

Não é possível modificar o nome de uma conta de armazenamento ou contentor após ter sido criado.It is not possible to modify the name of a storage account or container after it has been created. Se quiser utilizar um novo nome, tem de eliminá-lo e criar um novo.If you want to use a new name, you must delete it and create a new one.

Dica

Recomendamos que estabeleça uma convenção de nomenclatura para todos os tipos e contas de armazenamento antes de iniciar o desenvolvimento de um novo serviço ou aplicação.We recommend that you establish a naming convention for all storage accounts and types before embarking on the development of a new service or application.