當使用 Azure Resource Manager 範本 (ARM 範本) 或 Bicep 檔案進行的 Azure 資源部署失敗時,會收到錯誤碼。 本文說明如何尋找錯誤碼,以便針對問題進行疑難解答。 如需錯誤碼的詳細資訊,請參閱 常見的部署錯誤。
錯誤類型
有三種與部署相關的錯誤類型:
-
驗證錯誤 會在部署開始之前發生,而且是由檔案中的語法錯誤所造成。 Visual Studio Code 之類的程式碼編輯器可識別這些錯誤。
- 執行部署命令但未部署資源時,就會發生預先檢查驗證錯誤。 在不啟動部署的情況下找到這些錯誤。 例如,若參數值不正確,則會在預檢驗證中找到錯誤。
-
部署錯誤會在部署 程式期間發生,而且只能藉由評估 Azure 環境中的部署進度來找到。
所有錯誤類型都會傳回錯誤碼,以供您針對部署進行疑難排解之用。 驗證與預檢錯誤會顯示在活動記錄中,但不會出現在部署歷程記錄中。 含有語法錯誤的 Bicep 檔案不會編譯成 JSON,也不會顯示在活動記錄中。
若要識別語法錯誤,您可以使用 Visual Studio Code 搭配最新的 Bicep 擴充功能 或 Azure Resource Manager Tools 擴充功能。
驗證錯誤
範本會在部署程式期間進行驗證,並顯示錯誤碼。 在執行部署之前,您可以使用 Azure PowerShell 或 Azure CLI 執行驗證測試,以識別驗證和預檢錯誤。
您可以從入口網站部署ARM樣本。 如果範本有語法錯誤,當您嘗試執行部署時,您會看到驗證錯誤。 如需入口網站部署的詳細資訊,請參閱 從自定義範本部署資源。
下列範例會嘗試部署記憶體帳戶,併發生驗證錯誤。
選取訊息以取得詳細資訊。 樣本有語法錯誤,錯誤碼 InvalidTemplate為 。
[摘要] 顯示表達式遺漏右括弧。
要在部署前驗證 ARM 範本,請執行 Test-AzResourceGroupDeployment。
Test-AzResourceGroupDeployment `
-ResourceGroupName examplegroup `
-TemplateFile azuredeploy.json
輸出會顯示類似 InvalidTemplateDeployment 或 AccountNameInvalid 的錯誤碼,可用來疑難解答和修正範本。
針對 Bicep 檔案,語法驗證問題的輸出會顯示參數錯誤。
Test-AzResourceGroupDeployment: Cannot retrieve the dynamic parameters for the cmdlet.
Cannot find path '/tmp/11111111-1111-1111-1111-111111111111/main.json' because it does not exist.
若要取得更多疑難解答資訊,請使用 Bicep build 命令。 輸出會在括弧中顯示每個錯誤的行號和列號,以及錯誤訊息。
bicep build main.bicep
/azuredeploy.bicep(22,51) : Error BCP064: Found unexpected tokens in interpolated expression.
/azuredeploy.bicep(22,51) : Error BCP004: The string at this location is not terminated due to an
unexpected new line character.
其他範圍
有 Azure PowerShell Cmdlet 用於驗證訂用帳戶、管理群組和承租人範圍的部署範本。
若要在部署前驗證 ARM 範本,請執行 az deployment group validate。
az deployment group validate \
--resource-group examplegroup \
--template-file azuredeploy.json
輸出會顯示類似 InvalidTemplateDeployment 或 AccountNameInvalid 的錯誤碼,可用來疑難解答和修正範本。
針對 Bicep 檔案,輸出會在括弧中顯示每個錯誤的行號和欄位編號,以及錯誤訊息。
az deployment group validate \
--resource-group examplegroup \
--template-file main.bicep
/azuredeploy.bicep(22,51) : Error BCP064: Found unexpected tokens in interpolated expression.
/azuredeploy.bicep(22,51) : Error BCP004: The string at this location is not terminated due to an
unexpected new line character.
其他範圍
有 Azure CLI 命令可用來驗證訂用帳戶、管理群組和租用戶範圍的部署範本。
部署錯誤
系統會處理數個作業來部署 Azure 資源。 當作業通過驗證但部署期間失敗時,就會發生部署錯誤。 您可以檢視有關每個部署作業和資源群組之每個部署的訊息。
若要查看有關部署作業的訊息,請使用資源群組的活動 記錄:
登入 Azure 入口網站。
移至 [資源群組 ],然後選取部署的資源組名。
選取 [活動記錄]。
使用篩選條件來尋找作業的錯誤記錄檔。
選取錯誤記錄檔以查看作業的詳細數據。
若要檢視部署的結果:
移至資源群組。
選取 [設定]>[部署]。
選取錯誤詳細資料以進行部署。
會顯示錯誤訊息和錯誤碼 NoRegisteredProviderFound 。
若要使用 PowerShell 查看部署的作業訊息,請使用 Get-AzResourceGroupDeploymentOperation。
若要顯示部署的所有作業:
Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup
若要指定特定屬性類型:
(Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup).StatusCode
若要取得部署的結果,請使用 Get-AzResourceGroupDeployment。
Get-AzResourceGroupDeployment `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup
其他範圍
有 Azure PowerShell Cmdlet 用來擷取訂用帳戶範圍、管理群組範圍和租用戶範圍的部署資訊。
若要查看使用 Azure CLI 的部署作業訊息,請使用 az deployment operation group list。
若要顯示部署的所有作業:
az deployment operation group list \
--name exampledeployment \
--resource-group examplegroup \
--query "[*].properties"
若要指定特定屬性類型:
az deployment operation group list \
--name exampledeployment \
--resource-group examplegroup \
--query "[*].properties.statusCode"
若要取得部署的結果,請使用 az deployment group show。
az deployment group show \
--resource-group examplegroup \
--name exampledeployment
其他範圍
有 Azure CLI 命令可取得訂用帳戶、管理群組和租用戶範圍的部署資訊。
後續步驟