關於 ARM 範本的常見問題集

此文章將回答關於 Azure Resource Manager 範本 (ARM 範本) 的常見問題集。

開始使用

什麼是 ARM 範本,以及為何應該使用它們?

ARM 範本是 JSON 檔案,您可以在其中定義要部署至 Azure 的內容。 範本可協助您為 Azure 實作基礎結構即程式碼解決方案。 您的組織可以重複且可靠地將必要的基礎結構部署至不同環境。

若要深入了解 ARM 範本如何協助您管理 Azure 基礎結構,請參閱什麼是 ARM 範本?

如何開始使用範本?

若要簡化製作 ARM 範本的方式,您需要適當的工具。 建議您安裝 Visual Studio CodeAzure Resource Manager 工具延伸模組。 如需這些工具的快速簡介,請參閱快速入門:使用 Visual Studio Code 建立 ARM 範本

當您準備好了解如何建立 ARM 範本時,請從關於 ARM 範本的初學者教學課程系列開始。 這些教學課程會帶領您逐步完成建構 ARM 範本的流程。 您將了解範本的不同區段,以及它們如何一起運作。 Learn 模組中也提供了此內容。

我應該使用 ARM 範本或 Terraform 來部署到 Azure 嗎?

使用您最喜歡的選項。 這兩個服務都可協助您將 Azure 的部署自動化。

我們相信,透過其他基礎結構即程式碼服務使用 ARM 範本有其優點。 若要了解那些優點,請參閱為何選擇 ARM 範本?

Build 2020

我錯過了您在 Microsoft Build 2020 的簡報。 該簡報是否可供檢視?

是的, 隨時觀看。

哪裡可以取得有關您在 Build 所宣告之新功能的詳細資訊?

如需我們正致力於開發之功能的一般資訊,請加入我們的 Azure Advisor Deployments Yammer 群組

若要了解新的範本語言,請註冊以取得通知

若要了解範本規格,請參閱 Azure Resource Manager 範本規格

建立和測試範本

哪裡可以了解 ARM 範本的最佳做法?

如需如何實作範本的相關建議,請參閱 ARM 範本最佳做法。 建立範本之後,執行 ARM 測試工具組。 其會檢查您的範本是否符合建議的做法。

我已透過入口網站設定環境。 有什麼方法可以從現有的資源群組取得範本?

是,您可以從資源群組匯出範本。 匯出的範本是了解範本的好起點,但是您可以在實際執行環境中使用該範本之前先加以修訂。

匯出範本時,您可以選取要包含在範本中的資源。

我可以在 ARM 範本中建立資源群組,並將資源部署到該群組嗎?

是,您可以在 Azure 訂用帳戶層級部署範本時,在範本中建立資源群組。 如需建立資源群組和部署資源的範例,請參閱資源群組和資源

我可以在 ARM 範本中建立訂用帳戶嗎?

如何在部署範本之前進行測試?

建議您在部署範本之前,先執行 ARM 測試工具組和您範本上的假設狀況作業。 測試工具組會檢查您的範本是否使用最佳做法。 其會在識別出可改善您實作範本方式的變更時提供警告。

假設作業會顯示範本對您的環境所做的變更。 您可以在部署非預期的變更之前查看它們。 假設狀況也會傳回可在預檢驗證期間偵測到的任何錯誤。 例如,如果您的範本包含語法上的錯誤,則會傳回該錯誤。 它也會傳回可判斷已部署資源最終狀態的任何錯誤。 例如,如果您的範本使用已在使用中的名稱來部署儲存體帳戶,假設狀況就會傳回該錯誤。

哪裡可以找到可供每個資源類型使用的屬性相關資訊?

VS Code 會提供 Intellisense 來處理資源屬性。 您也可以檢視範本參考中的屬性和描述。

我需要建立資源類型的多個執行個體。 如何在範本中建立迭代器?

使用 copy 元素來指定多個執行個體。 您可以對資源屬性變數輸出使用 copy。

範本語言

我聽說您正致力於開發新的範本語言。 哪裡可以找到更多關於該語言的資訊?

若要了解新語言,請參閱什麼是 Bicep (預覽)?

是否有方案支援在 YAML 中建立範本?

目前沒有任何方案支援 YAML。 我們相信新的範本語言提供比 YAML 或 JSON 更容易使用的解決方案。

在發行新的範本語言之後,是否仍可在 JSON 中撰寫範本?

是,您可以繼續使用 JSON 範本。

您是否會提供將 JSON 範本轉換成新範本語言的工具?

範本規格

範本規格和 Azure 藍圖有何關聯?

Azure 藍圖將使用 template spec 資源來取代 blueprint definition 資源,以在其實作中使用範本規格。 我們提供將藍圖定義轉換成範本規格的移轉路徑,但仍支援藍圖定義 API。 blueprint assignment 資源沒有任何變更。 藍圖仍然是在 Azure 中撰寫受控環境的用戶經驗。

範本規格是否會取代連結的範本?

否,但範本規格的設計非常適合與連結的範本搭配使用。 您不需要在部署父範本之前,將連結的範本移至可公開存取的端點。 相反地,您要在建立範本規格時,將父範本及其成品封裝在一起。

範本規格可以跨訂用帳戶共用嗎?

是,只要使用者具有範本規格的讀取權限,就可以跨訂用帳戶使用範本規格。無法跨租用戶使用範本規格。

範本中的指令碼

我可以在範本中包含指令碼,以進行無法在範本中完成的工作嗎?

是,使用部署指令碼。 您可以在範本中包含 Azure PowerShell 或 Azure CLI 指令碼。

我是否仍然可以使用自訂指令碼延伸模組和 Desired State Configuration (DSC)?

那些選項仍可使用且並未變更。 部署指令碼是設計來執行與 VM 客體無關的動作。 如果您需要在 VM 中的主機作業系統上執行指令碼,則自訂指令碼延伸模組和/或 DSC 會是較佳的選擇。 不過,部署指令碼有一些優點,例如設定逾時持續期間。

Azure Government 中支援部署指令碼嗎?

是,您可以在 US Gov 亞利桑那州和 US Gov 維吉尼亞州中使用部署指令碼。

在部署前預覽變更

我可以預覽部署範本之前發生的變更嗎?

是,請使用假設狀況功能。 其會評估您環境的目前狀態,並將此狀態與部署後將存在的狀態進行比較。 您可以檢查摘要的變更,以確定範本沒有任何未預期的結果。

我可以搭配累加和完整模式使用假設狀況嗎?

是,同時支援這兩種部署模式。 如需使用累加模式的範例,請參閱執行假設狀況作業。 如需使用完整模式的範例,請參閱確認刪除

假設狀況會使用連結的範本嗎?

是,假設狀況會評估父範本的狀態及其連結的範本。

我可以在 Azure 管線中使用假設狀況嗎?

是,您可以使用假設狀況來驗證管線應該繼續。

當我使用假設狀況時,在範本內沒有的屬性中看到了變更。 此「雜訊」是否為預期狀況?

我們正在努力減少雜訊。 您可以在下列 GitHub 存放庫中提交問題,以協助我們改進:https://aka.ms/WhatIfIssues

範本視覺化檢視

是否有方法可讓我將 ARM 範本及其資源視覺化?

我們有一個由社群提供的 VS Code 延伸模組,可執行將 ARM 範本視覺化的絕佳工作。 其會顯示您正在部署的資源,以及它們之間的關聯。

我可以使用 VS Code 以外的範本視覺化檢視嗎?

在入口網站中預覽範本視覺化檢視。 如需詳細資訊,請觀看這段來自 Build 的簡短研討會

部署限制

我可以在單一部署作業中部署多少個資源群組?

在過去,此限制為五個資源群組。 其最近已增加至 800 個資源群組。 如需詳細資訊,請參閱在訂用帳戶層級建立資源群組和資源

我收到有關在部署歷程記錄中限制為 800 個部署的錯誤。 我該怎麼做?

我們正在變更如何維護資源群組的部署歷程記錄。 在過去,您必須手動刪除此歷程記錄的部署,以避免此錯誤。 從 2020 年 6 月開始,當您接近上限時,我們將自動從歷程記錄中刪除部署。 如需詳細資訊,請參閱 從部署歷程記錄自動刪除

從歷程記錄中刪除部署時,不會影響已部署的資源。

範本和 DevOps

我可以將 ARM 範本整合到 Azure Pipelines 嗎?

是。 如需如何使用範本和管線的說明,請參閱教學課程:ARM 範本與 Azure Pipelines 的持續整合將 ARM 範本與 Azure Pipelines 整合

我可以使用 GitHub Actions 來部署範本嗎?

下一步

如需 ARM 範本的簡介,請參閱什麼是 ARM 部署?