トラブルシューティング用テンプレートの作成
テンプレートのトラブルシューティングを行うための最善の方法は、テンプレートの特定の部分を分離してテストすることである場合があります。 エラーの原因と思われるリソースに焦点を当てたトラブルシューティング テンプレートを作成できます。
たとえば、デプロイ テンプレートで既存のリソースを参照している場合にエラーが発生します。 デプロイ テンプレート全体を評価するのではなく、リソースに関するデータを返すトラブルシューティング テンプレートを作成します。 この出力により、正しいパラメーターを渡しているかどうか、テンプレート関数を正しく使用しているかどうか、求めているリソースを取得しているかどうかを確認できます。
トラブルシューティング用テンプレートのデプロイ
次の 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 つのリソースを正しく定義したら、他の依存リソース (監査ポリシーなど) を追加します。 各テスト デプロイの間に、リソース グループを削除して、依存関係を適切にテストします。