你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
定义命名约定
资源的好名称有助于快速识别其类型、其关联的工作负荷、其环境和运行位置的 Azure 区域。 为此,名称应遵循一致的格式(命名约定),该约定由有关每个资源的重要信息组成。 名称中的信息理想情况下包括标识特定资源实例所需的任何内容。 例如,在美国西部地区,一个用于生产环境的 SharePoint 工作负载的公共 IP 地址 (PIP) 可能是 pip-sharepoint-prod-westus-001
。
图 1:Azure 资源名称中的组件示例。
建议的命名组成部分
在构建命名约定时,请标识要在资源名称中捕获的关键信息。 不同的信息与不同的资源类型相关,并非所有已建立的命名组件都可用于每种资源类型。 为环境建立一个标准命名约定,该约定易于遵循、简洁且可用于识别与部署的资源相关的信息。
以下列表提供了在构造资源名称时有用的命名组件的示例:
命名组成部分 | 描述 |
---|---|
组织 | 组织的顶级名称通常用于代表最高管理阶层,或在较小的组织中作为命名惯例的一部分。 示例:contoso |
业务单元或部门 | 拥有资源所属的订阅或工作负载的公司的最高层部门。 在较小的组织中,此组件可能代表单个企业顶级组织元素。 示例:fin 、mktg 、product 、it 、corp |
资源类型 | 表示 Azure 资源或资产类型的缩写。 此组件通常是名称中的前缀或后缀。 有关详细信息,请参阅 Azure 资源类型的建议缩写。 示例:rg 、vm |
工作负荷、应用程序或项目 | 资源所属的工作负荷、应用程序或项目的名称。 示例:navigator 、emissions 、sharepoint 、hadoop |
环境 | 资源支持的工作负载所处的开发生命周期阶段。 示例:prod 、dev 、qa 、stage 、test |
区域 | 部署资源的区域或云提供商。 示例:westus 、eastus2 、westeu 、usva 、ustx |
实例 | 特定资源的实例计数,以将其与具有相同命名约定和命名组件的其他资源区分开来。 示例、01 、001 |
命名注意事项
除了定义命名组件之外,还必须考虑列出命名组件的顺序以及应在组件之间显示哪种类型的分隔符(如果有)。 还要考虑与资源类型关联的不同命名规则。
范围
所有 Azure 资源类型都有一个范围,用于定义该资源的级别。 此外,资源必须在其范围内具有唯一的名称。
Azure 资源名称的范围级别:
全局:在全 Azure 中唯一。
示例:所有 Azure 中具有公共 IP 终结点的 PaaS 资源的名称,因为该名称是初始的默认公共 DNS 名称。
资源组:资源组中唯一。
示例:资源组中的所有虚拟网络都必须具有唯一的名称才能在该资源组中进行路由。
资源:父资源中唯一。
示例:虚拟网络中的所有子网必须具有唯一名称,以避免段重叠。
图 2:Azure 资源名称的范围级别。
例如,虚拟网络具有资源组的范围,这意味着特定资源组中只能有一个名为 vnet-prod-westus-001
的网络。 其他资源组也可以具有名为 vnet-prod-westus-001
的虚拟网络,但每个资源组只能有一个具有该名称的虚拟网络。 子网的范围限定为虚拟网络,因此虚拟网络中的每个子网必须具有不同的名称。
某些资源名称具有全局范围,例如具有公共终结点或虚拟机 DNS 标签的平台即服务(PaaS)的名称。 全局范围内的资源必须具有在整个 Azure 平台中唯一的名称。
Azure 命名规则
Azure 命名规则因资源类型而异。 请务必了解每种资源类型的命名规则,以避免混淆和延迟。
例如,不同资源类型的资源名称可能具有不同的长度限制。 我们建议保持命名组件的长度较短或缩写名称,以防止超出资源名称长度限制。
在构建命名规范时,请确定想要在资源名称中反映的关键信息内容。 不同的信息与不同的资源类型相关。
建议:
- 了解命名规则和限制:在开发命名约定时,平衡名称的上下文及其范围和长度限制非常重要。 有关详细信息,请参阅 Azure 资源的命名规则和限制。
- 使用建议的资源缩写:缩写有助于将资源名称保持在长度限制范围内,并使其更易于阅读。 有关详细信息,请参阅 Azure 资源类型的建议缩写。
- 考虑为 VM 命名一致性:如果使用 Azure 中的 VM,我们建议保持名称一致,即使 Azure 中的 VM 名称可能比 VM 允许的 NetBIOS 名称长。 有关详细信息和其他限制,请参阅 Active Directory 中计算机、域、站点和 OU 的 命名约定 - 计算机名称。
- 使用 Azure 命名工具:Azure 命名工具是一种工具,可帮助你根据命名约定生成 Azure 资源的名称。 有关详细信息,请参阅 Azure 命名工具。
示例名称
定义命名约定时,请考虑这些示例。 这些示例基于本文中所述的命名组件和注意事项。
以下示例旨在提供命名约定的可视化效果,但实际约定因组织而异。 有关更多示例,请参阅 Azure 命名工具。
示例名称:通用
资产类型 | 范围 | 格式和示例 |
---|---|---|
管理组 | 业务部门和/或 环境 |
mg-<业务部门>[-<环境>] mg-mktg mg-hr mg-corp-prod mg-fin-client |
订阅 | 帐户/企业协议 | <业务部门>-<订阅用途>-<###> mktg-prod-001 corp-shared-001 fin-client-001 |
资源组 | 订阅 | rg-<应用或服务名称>-<订阅用途>-<###> rg-mktgsharepoint-prod-001 rg-acctlookupsvc-shared-001 rg-ad-dir-services-shared-001 |
API 管理服务实例 | 全局 | apim-<应用或服务名称> apim-navigator-prod |
托管的标识 | 资源组 | id-<应用或服务名称>-<环境>-<区域名称>-<###> id-appcn-keda-prod-eastus2-001 |
示例名称:网络
资产类型 | 范围 | 格式和示例 |
---|---|---|
虚拟网络 | 资源组 | vnet-<订阅用途>-<区域>-<###> vnet-shared-eastus2-001 vnet-prod-westus-001 vnet-client-eastus2-001 |
子网 | 虚拟网络 | snet-<订阅用途>-<区域>-<###> snet-shared-eastus2-001 snet-prod-westus-001 snet-client-eastus2-001 |
网络接口 (NIC) | 资源组 | nic-<##>-<虚拟机名称>-<订阅目的>-<###> nic-01-dc1-shared-001 nic-02-vmhadoop1-prod-001 nic-02-vmtest1-client-001 |
公共 IP 地址 | 资源组 | pip-<vm 名称或应用名称>-<环境>-<区域>-<###> pip-dc1-shared-eastus2-001 pip-hadoop-prod-westus-001 |
负载均衡器(外部) | 资源组 | lbe-<应用名称或角色>-<环境>-<###> lbe-navigator-prod-001 lbe-sharepoint-dev-001 |
网络安全组 (NSG) | 子网或 NIC | nsg-<策略名称或应用名称>-<###> nsg-weballow-001 nsg-rdpallow-001 nsg-sqlallow-001 nsg-dnsblocked-001 |
本地网络网关 | 虚拟网关 | lgw-<订阅用途>-<区域>-<###> lgw-shared-eastus2-001 lgw-prod-westus-001 lgw-client-eastus2-001 |
虚拟网络网关 | 虚拟网络 | vgw-<订阅用途>-<区域>-<###> vgw-shared-eastus2-001 vgw-prod-westus-001 vgw-client-eastus2-001 |
VPN 连接 | 资源组 | vcn-<订阅1 用途>>-<区域1>-<订阅2 用途>>-<区域2>- vcn-shared-eastus2-to-shared-westus vcn-prod-eastus2-to-prod-westus |
路由表 | 资源组 | rt-<路由表名称> rt-navigator rt-sharepoint |
DNS 标签 | 全局 | <DNS A record for VM>.<region>.cloudapp.azure.com dc1.westus.cloudapp.azure.com web1.eastus2.cloudapp.azure.com |
示例名称:计算和 Web
资产类型 | 范围 | 格式和示例 |
---|---|---|
虚拟机 | 资源组 | vm-<工作负荷、应用程序或项目>-<环境>-<###> vm-sql-test-001 vm-hadoop-prod-001 vm-sharepoint-dev-001 |
Web 应用 | 全局 | 应用<工作负荷、应用程序或项目>-<环境>-<###>.azurewebsites.net app-navigator-prod-001.azurewebsites.net app-accountlookup-dev-001.azurewebsites.net |
函数应用 | 全局 | func-<工作负荷、应用程序或项目>-<环境>-<###>.azurewebsites.net func-navigator-prod-001.azurewebsites.net func-accountlookup-dev-001.azurewebsites.net |
示例名称:数据库
资产类型 | 范围 | 格式和示例 |
---|---|---|
Azure SQL 数据库 | Azure SQL Server | sqldb-<工作负荷、应用程序或项目>-<环境> sqldb-users-prod sqldb-users-dev |
Azure Cosmos DB 数据库 | 全局 | cosmos-<工作负载、应用程序或项目>-<环境> cosmos-navigator-prod cosmos-emissions-dev |
Azure Cache for Redis 实例 | 全局 | redis-<工作负载、应用程序或项目>-<环境> redis-navigator-prod redis-emissions-dev |
示例名称:存储
资产类型 | 范围 | 格式和示例 |
---|---|---|
存储帐户(常规用途) | 全局 | st<工作负荷、应用程序或项目><###> stnavigatordata001 stemissionsoutput001 |
Azure StorSimple | 全局 | ssimp<工作负载、应用程序或项目><环境> ssimpnavigatorprod ssimpemissionsdev |
Azure 容器注册表 | 全局 | cr<工作负荷、应用程序或项目><环境><###> crnavigatorprod001 |
示例名称:AI 和机器学习
资产类型 | 范围 | 格式和示例 |
---|---|---|
Azure AI 搜索 | 全局 | srch-<工作负荷、应用程序或项目>-<环境> srch-navigator-prod srch-emissions-dev |
Azure OpenAI 服务 | 资源组 | oai-<工作负载、应用程序或项目>-<环境> oai-navigator-prod oai-emissions-dev |
Azure 机器学习工作区 | 资源组 | mlw-<工作负载、应用程序或项目>-<环境> mlw-navigator-prod mlw-emissions-dev |
示例名称:分析和物联网
资产类型 | 范围 | 格式和示例 |
---|---|---|
Azure Analysis Services | 全局 | as<应用名称><环境> asnavigatorprod asemissionsdev |
Azure 数据工厂 | 全局 | adf-<工作负荷、应用程序或项目>-<环境> adf-navigator-prod adf-emissions-dev |
Azure Synapse Analytics 工作区 | 资源组 | synw-<工作负载、应用程序或项目>-<环境> synw-navigator-prod synw-emissions-dev |
Data Lake Storage 帐户 | 全局 | dls<工作负载、应用程序或项目><环境> dlsnavigatorprod dlsemissionsdev |
物联网 (IoT) 中心 | 全局 | iot-<工作负载、应用程序或项目>-<环境> iot-navigator-prod iot-emissions-dev |
示例名称:集成
资产类型 | 范围 | 格式和示例 |
---|---|---|
服务总线命名空间 | 全局 | sbns-<工作负载、应用程序或项目>-<环境>.servicebus.windows.net sbns-navigator-prod.servicebus.windows.net sbns-emissions-dev.servicebus.windows.net |
服务总线队列 | 服务总线 | sbq-<工作负荷、应用程序或项目> sbq-navigator |
服务总线主题 | 服务总线 | sbt-<工作负荷、应用程序或项目> sbt-navigator |
下一步
一个好的下一步是查看 Azure 资源的建议缩写。 缩写有助于将资源名称保持在长度限制范围内,并使其更易于阅读。