教程:排查 ARM 模板部署问题
了解如何排查 Azure 资源管理器模板(ARM 模板)部署错误。 在本教程中,请先在模板中设置两个错误,然后了解如何使用活动日志和部署历史记录来解决问题。
有两种类型的错误与模板部署相关:
- 验证错误源于部署之前可确定的方案。 原因包括模板中的语法错误,或尝试部署超出订阅配额的资源。
- 部署错误源于部署过程中发生的条件。 原因包括尝试访问并行部署的资源。
两种类型的错误都会返回用于对部署进行故障排除的错误代码。 两种类型的错误都会显示在活动日志中。 但是,验证错误不会显示在部署历史记录中,因为部署从未启动。
本教程涵盖以下任务:
- 创建有问题的模板
- 排查验证错误
- 排查部署错误
- 清理资源
如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
先决条件
若要完成本文,需要做好以下准备:
- 包含资源管理器工具扩展的 Visual Studio Code。 请参阅快速入门:使用 Visual Studio Code 创建 ARM 模板。
创建有问题的模板
打开 Azure 快速入门模板中名为创建标准存储帐户的模板,设置两个模板问题。
在 Visual Studio Code 中,选择“文件”>“打开文件”。
在“文件名”中粘贴以下 URL:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
选择“打开”以打开该文件。
将
apiVersion
行更改为以下行:"apiVersion1": "2018-07-02",
apiVersion1
是无效的元素名称。 它是验证错误。- API 版本应为
"2018-07-01"
。 它是部署错误。
选择“文件”>“另存为”,将该文件作为 azuredeploy.json 保存到本地计算机。
排查验证错误
请参阅部署模板部分,了解如何部署模板。
你会从 shell 获得类似于以下内容的错误:
New-AzResourceGroupDeployment : 4:29:24 PM - Error: Code=InvalidRequestContent; Message=The request content was invalid and could not be deserialized: 'Could not find member 'apiVersion1' on object of type 'TemplateResource'. Path 'properties.template.resources[0].apiVersion1', line 36, position 24.'.
错误消息指示问题出在 apiVersion1
。
使用 Visual Studio Code 修正此问题,方法是将 apiVersion1
更改为 apiVersion
,然后保存模板。
排查部署错误
请参阅部署模板部分,了解如何部署模板。
你会从 shell 获得类似于以下内容的错误:
New-AzResourceGroupDeployment : 4:48:50 PM - Resource Microsoft.Storage/storageAccounts 'storeqii7x2rce77dc' failed with message '{
"error": {
"code": "NoRegisteredProviderFound",
"message": "No registered resource provider found for location 'chinaeast' and API version '2018-07-02' for type 'storageAccounts'. The supported api-versions are '2018-07-01, 2018-03-01-preview, 2018-02-01, 2017-10-01, 2017-06-01, 2016-12-01, 2016-05-01, 2016-01-01, 2015-06-15, 2015-05-01-preview'. The supported locations are 'chinaeast, chinaeast2, chinanorth, chinanorth2'."
}
}'
可通过以下过程从 Azure 门户找出部署错误:
登录 Azure 门户。
打开资源组,方法是:选择“资源组”,然后选择资源组名称。 此时会看到“部署”下显示“1 个失败” 。
选择“错误详细信息”。
错误消息与此前显示的相同:
也可在活动日志中查找错误:
登录 Azure 门户。
选择“Monitor”>“活动日志”。
使用筛选器查找日志。
使用 Visual Studio Code 修正此问题,然后重新部署模板。
如需常见错误的列表,请参阅排查使用 Azure 资源管理器时的常见 Azure 部署错误。
清理资源
不再需要 Azure 资源时,请通过删除资源组来清理部署的资源。
- 在 Azure 门户上的左侧菜单中选择“资源组” 。
- 在“按名称筛选”字段中输入资源组名称。
- 选择资源组名称。 应会看到,该资源组中总共有六个资源。
- 在顶部菜单中选择“删除资源组”。
后续步骤
本教程介绍了如何排查 ARM 模板部署错误。 有关详细信息,请参阅排查使用 Azure 资源管理器时的常见 Azure 部署错误。