トラブルシューティング用テンプレートの作成

テンプレートのトラブルシューティングを行うための最善の方法は、テンプレートの特定の部分を分離してテストすることである場合があります。 エラーの原因と思われるリソースに焦点を当てたトラブルシューティング テンプレートを作成できます。

たとえば、デプロイ テンプレートで既存のリソースを参照している場合にエラーが発生します。 デプロイ テンプレート全体を評価するのではなく、リソースに関するデータを返すトラブルシューティング テンプレートを作成します。 この出力により、正しいパラメーターを渡しているかどうか、テンプレート関数を正しく使用しているかどうか、求めているリソースを取得しているかどうかを確認できます。

トラブルシューティング用テンプレートのデプロイ

次の 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

代替のトラブルシューティング方法

依存関係が正しくないことが原因でデプロイ エラーが発生すると思われる場合は、テンプレートを簡略化されたテンプレートに分割してテストを実行できます。 最初に、1 つのリソース (SQL Server など) のみをデプロイするテンプレートを作成します。 リソースのデプロイが正しいと確信している場合は、それに依存するリソースを追加します (SQL Database など)。 これら 2 つのリソースを正しく定義したら、他の依存リソース (監査ポリシーなど) を追加します。 各テスト デプロイの間に、リソース グループを削除して、依存関係を適切にテストします。

次の手順