创建故障排除模板

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

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

部署故障排除模板

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

后续步骤