创建故障排除模板

在某些情况下,排查模板问题的最佳方法是隔离并测试模板的特定部分。 你可以创建一个故障排除模板,重点关注你认为导致错误的资源。

例如,当你的部署模板引用现有资源时,会发生错误。 与其评估整个部署模板,不如创建一个返回关于资源数据的故障排除模板。 此输出可以帮助确定传入的是否是正确的参数,是否正确使用模板函数,以及是否获得所需的资源。

部署故障排除模板

以下 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 数据库)。 正确定义这两个资源后,添加其他从属资源(如审核策略)。 在每个测试部署之间,删除资源组,以确保充分测试依赖项。

后续步骤