创建故障排除模板
在某些情况下,排查模板问题的最佳方法是隔离并测试模板的特定部分。 你可以创建一个故障排除模板,重点关注你认为导致错误的资源。
例如,当你的部署模板引用现有资源时,会发生错误。 与其评估整个部署模板,不如创建一个返回关于资源数据的故障排除模板。 此输出可以帮助确定传入的是否是正确的参数,是否正确使用模板函数,以及是否获得所需的资源。
部署故障排除模板
以下 ARM 模板和 Bicep 文件从现有存储帐户中获取信息。 使用 Azure PowerShell New-AzResourceGroupDeployment 或 Azure CLI az deployment group create 运行部署。 指定存储帐户的名称和资源组。 输出是包含存储帐户的属性名称和值的对象。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string"
},
"storageResourceGroup": {
"type": "string"
}
},
"variables": {},
"resources": [],
"outputs": {
"exampleOutput": {
"value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageName')), '2022-05-01')]",
"type": "object"
}
}
}
在 Bicep 中,使用 existing
关键字,并从存储帐户所在的资源组运行部署。 使用 scope
访问不同资源组中的资源。 有关详细信息,请参阅现有资源。
param storageName string
resource stg 'Microsoft.Storage/storageAccounts@2022-05-01' existing = {
name: storageName
}
output exampleOutput object = stg.properties
备用故障排除方法
如果你认为部署错误是由不正确的依赖项引起的,可以通过将模板分解为若干个简化的模板来运行测试。 首先,创建仅部署单个资源(如 SQL Server)的模板。 如果你确定资源部署正确无误,请添加一个依赖于它的资源(如 SQL 数据库)。 正确定义这两个资源后,添加其他从属资源(如审核策略)。 在每个测试部署之间,删除资源组,以确保充分测试依赖项。