定義完善的命名和標記策略會形成有效的 Azure 雲端治理和安全性的基礎。 這些慣例可讓您維護 Azure 資源的清查、追蹤和配置成本,以及快速識別受影響的資源來回應事件。 儘早定義您的命名和標記策略,以確保整個環境的一致性和清晰性。 本文提供建立命名慣例的建議。 如需標記指引,請參閱 定義標記策略。
為什麼要使用命名慣例?
Azure 命名慣例是標準化格式,用來將名稱指派給 Azure 資源。 它可確保清楚、一致性,並遵循 Azure 的命名規則,例如長度要求、有效字元和範圍唯一性。 命名慣例必須根據您的特定需求量身打造,因為沒有任何單一命名慣例符合每個環境的需求。
瞭解 Azure 中的資源名稱
Azure 資源名稱是指派給 Azure 資源特定實例的標識碼,例如 Web 應用程式、資料庫或記憶體帳戶。 若要建立一致的命名慣例,您必須瞭解 Azure 的運作方式。 以下是您需要知道的事項:
了解名稱的永久性。 建立之後,就無法變更 Azure 資源名稱。 只包含名稱中保持不變的資料。 使用標記來擷取其他詳細數據。
瞭解 Azure 命名規則。 每個 Azure 資源都有命名規則。 並非所有 Azure 資源名稱都可以遵循相同的模式。 請務必瞭解您正在使用的資源類型限制。 Azure 名稱必須遵循三個一般原則:
- 名稱在 Azure 資源的範圍內必須是唯一的(依資源而有所不同)。
- 名稱必須符合長度需求(依資源而異)。
- 名稱只能包含有效字元(依資源而異)。
瞭解 Azure 名稱範圍。 Azure 資源名稱在其定義的範圍內必須是唯一的。 每個資源類型都有特定的範圍層級,可決定名稱必須是唯一的。 瞭解這些範圍層級可確保適當的命名慣例,並避免衝突。
Scope 描述 範例 全球 在所有 Azure 中都是唯一的。 此範圍適用於具有公用IP端點的 PaaS 資源,因為其名稱可作為初始預設公用 DNS 名稱。 例如,名為 app-navigator-prod-001.azurewebsites.net
的 Web 應用程式必須是全域唯一的。資源群組 在資源群組中唯一的 相同群組中的資源無法共用相同的名稱,但相同的名稱可以存在於不同的資源群組中。 例如,名為 vnet-prod-westus-001
的虛擬網路可以存在於多個資源群組中,但只存在於單一資源群組內一次。資源 父資源中的唯一項。 巢狀於另一個資源內的資源必須有唯一的名稱,以避免衝突。 例如,虛擬網路內的子網必須有唯一的名稱,以防止區段重疊。
選擇命名元件
當您建構命名慣例時,請識別您想要在資源名稱中擷取的主要資訊片段。 不同的資訊與不同的資源類型有關,並非所有已建立的命名元件都可用於每個資源類型。 為您的環境建立易於遵循、簡潔且實用的標準命名慣例,以辨識與已部署資源相關的資訊。 下列清單提供命名元件的範例,這些元件在建構資源名稱時很有用:
命名元件 | 描述 |
---|---|
組織 | 組織的最上層名稱,通常用來作為最高管理群組,或在較小的組織中,屬於命名慣例的一部分。 範例: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 命名工具:Azure 命名工具是一種工具,可協助您產生 Azure 資源的名稱。 您可以設定工具以使用您慣用的命名慣例,並產生 Azure 資源的名稱。 如需詳細資訊,請參閱 Azure 命名工具。
請考慮 VM 命名的一致性。 如果您在 Azure 中使用 VM,建議您保持名稱一致,即使 Azure 中的 VM 名稱可能比 VM 允許的 NetBIOS 名稱還要長。 如需詳細資訊和其他限制,請參閱 Active Directory 中電腦、網域、網站和 OU 的 命名慣例 - 電腦名稱。
範例 Azure 資源名稱
當您定義命名慣例時,請考慮這些範例。 這些範例是以本文所述的命名元件和考慮為基礎。
AI 和機器學習
資產類型 | Scope | 格式和範例 |
---|---|---|
Azure AI 搜尋 | 全球 |
<負載量、應用程式或專案>-<環境> srch-navigator-prod srch-emissions-dev |
Azure OpenAI 服務 | 資源群組 |
oai-<工作負載、應用程式或專案>-<環境> oai-navigator-prod oai-emissions-dev |
Azure Machine Learning 工作區 | 資源群組 |
mlw-<工作負載、應用程式或專案>-<環境> mlw-navigator-prod mlw-emissions-dev |
分析與 IoT
資產類型 | Scope | 格式和範例 |
---|---|---|
Azure Analysis Services | 全球 | 在 中作為<應用程式名稱,><環境> asnavigatorprod asemissionsdev |
Azure Data Factory | 全球 |
adf-<工作負載、應用程式或專案>-<環境> adf-navigator-prod adf-emissions-dev |
Data Lake Storage 帳戶 | 全球 |
dls<工作負載、應用程式或專案><環境> dlsnavigatorprod dlsemissionsdev |
IoT 中樞 | 全球 |
iot-<工作負載、應用或專案>-<平台> iot-navigator-prod iot-emissions-dev |
Compute 和 Web
資產類型 | Scope | 格式和範例 |
---|---|---|
虛擬機器 | 資源群組 |
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 |
資料庫
資產類型 | Scope | 格式和範例 |
---|---|---|
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 |
整合
資產類型 | Scope | 格式和範例 |
---|---|---|
API 管理服務實例 | 全球 |
apim-<應用程式或服務名稱> apim-navigator-prod |
服務總線命名空間 | 全球 |
<工作負載、應用程式或專案>-<環境>.servicebus.windows.net sbns-navigator-prod.servicebus.windows.net sbns-emissions-dev.servicebus.windows.net |
服務總線佇列 | 服務匯流排 |
sbq-<工作負載、應用程式或專案> sbq-navigator |
服務總線主題 | 服務匯流排 |
sbt-<工作負載、應用程式或專案> sbt-navigator |
管理和治理
資產類型 | Scope | 格式和範例 |
---|---|---|
管理群組 | 業務單位和/或 環境 |
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 |
網路
資產類型 | Scope | 格式和範例 |
---|---|---|
虛擬網路 | 資源群組 |
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-<##>-<VM 名稱>-<訂閱目的>-<###> 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-<subscription1 用途>>-<region1>-<subscription2 用途>>-<region2>- vcn-shared-eastus2-to-shared-westus vcn-prod-eastus2-to-prod-westus |
路由表 | 資源群組 |
rt-<路由表名稱> rt-navigator rt-sharepoint |
DNS 標籤 | 全球 |
<VM>的 DNS A 記錄。<區域>.cloudapp.azure.com dc1.westus.cloudapp.azure.com web1.eastus2.cloudapp.azure.com |
安全性
資產類型 | Scope | 格式和範例 |
---|---|---|
受控識別 | 資源群組 |
標識碼-<應用程式或服務名稱>-<環境>-<區域名稱>-<###> id-appcn-keda-prod-eastus2-001 |
儲存體
資產類型 | Scope | 格式和範例 |
---|---|---|
記憶體帳戶 (一般用途) | 全球 |
st<工作負載、應用程式或專案><###> stnavigatordata001 stemissionsoutput001 |
Azure StorSimple | 全球 |
<工作負荷、應用程式或專案><環境> ssimpnavigatorprod ssimpemissionsdev |
Azure 容器註冊表 | 全球 |
cr<工作負載、應用程式或專案><環境><###> crnavigatorprod001 |
下一步
下一步是定義標記策略。