你当前正在访问 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 |
VM 角色 | VM 用途的标识符。 示例: db (数据库)、 ws (Web 服务器)、 ps (打印服务器) |
实例 | 特定资源的实例计数,以将其与具有相同命名约定和命名组件的其他资源区分开来。 示例、 01 001 |
注意
尽管 Azure 中的虚拟机(VM)名称可能比 VM 允许的 NetBIOS 名称长,但我们建议保持其一致。 有关详细信息和其他限制,请参阅 计算机名称。
命名注意事项
除了定义命名组件之外,还必须考虑列出命名组件的顺序以及应在组件之间显示哪种类型的分隔符(如果有)。 还要考虑与资源类型关联的不同命名规则。
范围
所有 Azure 资源类型都有一个范围,用于定义该资源的级别。 此外,资源必须在其范围内具有唯一的名称。
例如,虚拟网络具有资源组的范围,这意味着只能在特定资源组中命名 vnet-prod-westus-001
一个网络。 其他资源组也可以具有命名 vnet-prod-westus-001
的虚拟网络,但每个资源组只能有一个具有该名称的资源组。 子网的范围限定为虚拟网络,因此虚拟网络中的每个子网必须具有不同的名称。
某些资源名称具有全局范围,例如具有公共终结点或虚拟机 DNS 标签的平台即服务(PaaS)的名称。 全局范围内的资源必须具有在整个 Azure 平台中唯一的名称。
图 2:Azure 资源名称的范围级别。
Azure 命名规则
Azure 命名规则因资源类型而异。 定义命名约定时,请务必了解资源类型的 Azure 命名规则,以避免混淆和延迟部署。
例如,资源名称具有长度限制。 建议保持命名组件的长度短,以防止超出资源名称长度限制。
注意
开发命名约定时,平衡名称的上下文及其范围和长度限制非常重要。 有关详细信息,请参阅 Azure 资源的命名规则和限制。
构造命名约定时,请确定要在资源名称中反映的关键信息。 不同资源类型的相关信息也不同。 下面的列表举例说明了在构造资源名称时有用的信息。
可以将资源名称和命名组件缩写为一种策略,以减少资源名称的长度和复杂性。 缩短名称对于任何命名组件都很有用,但帮助你将资源名称保持在名称长度限制内尤其重要。 例如,Azure 中的 VM 名称可能比 OS 命名限制长。 使 Azure VM 名称比 OS 的命名限制短,有助于创建一致性、在讨论资源时改进通信,并减少在登录到 VM 本身时在Azure 门户工作时的混淆。
命名组成部分 | 说明 |
---|---|
资源类型 | 表示 Azure 资源或资产的类型的缩写。 此组件通常用作名称中的前缀或后缀。 有关详细信息,请参阅 Azure 资源类型的建议缩写。 示例: rg 、vm |
业务部门 | 拥有资源所属的订阅或工作负荷的公司顶级部门。 在规模较小的组织中,此组成部分可能表示一个企业顶级组织元素。 示例: fin 、mktg 、product 、it 、corp |
应用程序或服务名称 | 资源所属的应用程序、工作负荷或服务的名称。 示例: navigator 、emissions 、sharepoint 、hadoop |
订阅用途 | 包含资源的订阅的目的摘要说明。 通常按环境或特定工作负荷细分。 示例: prod 、shared 、client |
环境 | 资源支持的工作负荷的开发生命周期阶段。 示例: prod 、dev 、qa 、stage 、test |
区域 | 部署资源的 Azure 区域。 示例: westus 、eastus2 、westeu 、usva 、ustx |
注意
准备好为资源和资产命名时,请查看 Azure 资源类型的建议缩写。
以下部分提供了企业云部署中常见 Azure 资源类型的示例名称。
注意
其中一些示例名称使用三位填充方案 (###
),例如 mktg-prod-001
。
当资产在配置管理数据库 (CMDB)、IT 资产管理工具或传统会计工具中进行管理时,填充可提高资产的可读性和排序。 当部署的资产作为 IT 资产更大库存或项目组合的一部分进行集中管理时,填充方法与这些系统用于管理库存命名的接口保持一致。
遗憾的是,传统资产填充方法在基础结构即代码方法中可能会有问题,这些方法可能会基于非填充数字循环访问资产。 此方法在部署或自动配置管理任务期间很常见。 这些脚本必须定期去除填充并将填充的数字转换为实数,这会减慢脚本的开发和运行时间。
选择适合组织的方法。 此处所示的填充说明了使用一致的清单编号方法的重要性,而不是显示哪种方法优越。 在选择带或不填充的编号方案之前,请评估哪些操作会影响长期操作:CMDB 和资产管理解决方案或基于代码的库存管理。 然后,始终遵循最符合运营需求的填充选项。
以下部分提供了企业云部署中常见 Azure 资源类型的一些示例名称。 有关更多示例,请参阅 Azure 命名工具。
注意
以下示例旨在提供命名约定的可视化效果,但实际约定因组织而异。
示例名称:常规
资产类型 | 范围 | 格式和示例 |
---|---|---|
管理组 | 业务部门和/或 环境 |
mg-business< unit>[-<environment>] mg-mktg mg-hr mg-corp-prod mg-fin-client |
订阅 | 帐户/企业协议 | <业务单位>订阅<用途> -<###> mktg-prod-001 corp-shared-001 fin-client-001 |
资源组 | 订阅 | rg-app< 或服务名称><-订阅用途> -<###> rg-mktgsharepoint-prod-001 rg-acctlookupsvc-shared-001 rg-ad-dir-services-shared-001 |
API 管理服务实例 | 全局 | apim-<应用或服务名称> apim-navigator-prod |
托管的标识 | 资源组 | id-app 或服务名称-<environment-region<> name>-<<>###> id-appcn-keda-prod-eastus2-001 |
示例名称:网络
资产类型 | 范围 | 格式和示例 |
---|---|---|
虚拟网络 | 资源组 | vnet-subscription< purpose-region>><-<###> vnet-shared-eastus2-001 vnet-prod-westus-001 vnet-client-eastus2-001 |
子网 | 虚拟网络 | snet-subscription< purpose-region>><-<###> snet-shared-eastus2-001 snet-prod-westus-001 snet-client-eastus2-001 |
网络接口 (NIC) | 资源组 | nic-<##>-<vm name-subscription<> purpose>-<###> 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-app< 名称或角色><环境> -<###> lbe-navigator-prod-001 lbe-sharepoint-dev-001 |
网络安全组 (NSG) | 子网或 NIC | nsg-<策略名称或应用名称>-<###> nsg-weballow-001 nsg-rdpallow-001 nsg-sqlallow-001 nsg-dnsblocked-001 |
本地网关 | 虚拟网关 | lgw-subscription< purpose-region>><-<###> lgw-shared-eastus2-001 lgw-prod-westus-001 lgw-client-eastus2-001 |
虚拟网络网关 | 虚拟网络 | vgw-subscription< purpose-region>><-<###> vgw-shared-eastus2-001 vgw-prod-westus-001 vgw-client-eastus2-001 |
VPN 连接 | 资源组 | vcn-subscription1< purpose-region1-to-subscription2>>><< purpose-region2->>>< vcn-shared-eastus2-to-shared-westus vcn-prod-eastus2-to-prod-westus |
路由表 | 资源组 | rt-route< 表名称> 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< role-environment>><-<###> vm-sql-test-001 vm-hadoop-prod-001 |
Web 应用程序 | 全局 | app-project<、app or service-environment>>-<<##>.azurewebsites.net app-navigator-prod-001.azurewebsites.net app-accountlookup-dev-001.azurewebsites.net |
函数应用 | 全局 | func-project<、app or service-environment>>-<<##>.azurewebsites.net func-navigator-prod-001.azurewebsites.net func-accountlookup-dev-001.azurewebsites.net |
示例名称:数据库
资产类型 | 范围 | 格式和示例 |
---|---|---|
Azure SQL 数据库 | Azure SQL Server | sqldb-project<、应用或服务>环境<> sqldb-users-prod sqldb-users-dev |
Azure Cosmos DB 数据库 | 全局 | cosmos-project<、应用或服务>环境<> cosmos-navigator-prod cosmos-emissions-dev |
Azure Cache for Redis 实例 | 全局 | redis-project<、应用或服务>环境<> redis-navigator-prod redis-emissions-dev |
示例名称:存储
资产类型 | 范围 | 格式和示例 |
---|---|---|
存储帐户(常规用途) | 全局 | st<项目、应用或服务><###> stnavigatordata001 stemissionsoutput001 |
Azure StorSimple | 全局 | ssimp<项目、应用或服务><环境> ssimpnavigatorprod ssimpemissionsdev |
Azure 容器注册表 | 全局 | cr<项目、应用或服务><环境><###> crnavigatorprod001 |
示例名称:AI 和机器学习
资产类型 | 范围 | 格式和示例 |
---|---|---|
Azure AI 搜索 | 全局 | srch-project<、应用或服务>环境<> srch-navigator-prod srch-emissions-dev |
Azure OpenAI 服务 | 资源组 | oai-project<、应用或服务>环境<> oai-navigator-prod oai-emissions-dev |
Azure 机器学习工作区 | 资源组 | mlw-project<、应用或服务>环境<> mlw-navigator-prod mlw-emissions-dev |
示例名称:Analytics 和 IoT
资产类型 | 范围 | 格式和示例 |
---|---|---|
Azure Analysis Services | 全局 | 作为<应用名称><环境> asnavigatorprod asemissionsdev |
Azure 数据工厂 | 全局 | adf-project<、应用或服务>环境<> adf-navigator-prod adf-emissions-dev |
Azure Synapse Analytics 工作区 | 资源组 | synw-project<、应用或服务>环境<> synw-navigator-prod synw-emissions-dev |
Data Lake Storage 帐户 | 全局 | dls<项目、应用或服务><环境> dlsnavigatorprod dlsemissionsdev |
IoT 中心 | 全局 | iot-project<、应用或服务>环境<> iot-navigator-prod iot-emissions-dev |
示例名称:集成
资产类型 | 范围 | 格式和示例 |
---|---|---|
服务总线命名空间 | 全局 | sbns-project<、app or service-environment.servicebus.windows.net><> sbns-navigator-prod.servicebus.windows.net sbns-emissions-dev.servicebus.windows.net |
服务总线队列 | 服务总线 | sbq-project<、应用或服务> sbq-navigator |
服务总线主题 | 服务总线 | sbt-project<、应用或服务> sbt-navigator |