Azure ARMテンプレート検証エラーをトラブルシューティングするにはどうすればよいですか?
Azure ARMテンプレートファイルにいくつかの小さな変更を加えましたが、xplat cliを介してデプロイまたは検証を試みると、このメッセージが表示されます。
エラー:InvalidTemplateDeployment:テンプレート展開 'fakedDeploymentName'は検証手順に従って無効です。トラッキングIDは「\ some kind of GUID here \」です。詳細については内部エラーを参照してください。 http://aka.ms/arm-deploy を参照してください。使用方法の詳細。
エラー:PreflightValidationCheckFailed:プリフライトの検証に失敗しました。特定のエラーの詳細を参照してください。
この問題をトラブルシューティングしたいのですが、コンソールに「内部エラー」は表示されません。毎回一意のGUID=を提供します。これは、このGUIDを使用して、より有益なメッセージを検索できることを意味します。エラー?(エラーの実際の原因に関するヘルプをまだ探していません)
CLIの最新バージョンを実行していることを確認してください。詳細なエラーのバブルアップに取り組んでいます。それでも問題が解決しない場合は、お知らせください https://github.com/Azure/azure-xplat-cli/issues
その後、ログに詳細が表示されない場合は、-vvスイッチを使用して展開を実行します。詳細なデバッグ出力(詳細)にすべてのエラーメッセージが含まれ、通常、特定の障害を選別して見つけることができます。
Azure group deployment create ... -vv
パワーシェル:
New-AzureRmResourceGroupDeployment ... -debug
Azure portal portal.Azure.comにログインします。
アクティビティログを開く
アクティビティのリストで、検証の操作名を持つレコードを見つけます。失敗したため、赤い感嘆符が付いているはずです。
そのレコードをクリックします。次に、下部の[JSON]タブをクリックします。読んで、返されたJsonのどこかで、「helloworldという名前のストレージアカウントが既に使用されています」などのエラーがstatusMessageで見つかる場合があります。
提供されたトラッキングIDで次のPowerShell Azureコマンドレットを実行します。
Get-AzureRMLog -CorrelationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -DetailedOutput
トラッキングIDは、ユーザーではなく、ログを確認するためのテクニカルサポートであると考えています。正確な質問に関しては、ログを確認する必要があります- reference 。
テンプレートを検証するもう1つの良い方法は、 Resource Explorer を使用することです。
@nftwでの構築:
$deploymentGroupName = 'deploymentGroupName'
$correlationId = ((Get-AzureRMLog -ResourceGroup $deploymentGroupName)[0]).CorrelationId
$logentry = (Get-AzureRMLog -CorrelationId $correlationId -DetailedOutput)
#$logentry
$rawStatusMessage = $logentry.Properties
$status = $rawStatusMessage.Content.statusMessage | ConvertFrom-Json
$status.error.details
$status.error.details.details
私は同じ問題を抱えていました。基本的に、「InvalidTemplateDeployment」に渡される詳細を取得できませんでした。
Visual Studio:Azure Resource GroupプロジェクトテンプレートにARMテンプレートを追加し、デプロイしようとしました。[出力]タブに詳細な情報が表示されました。問題の解決に役立ちました。
私の場合、それはクラスターの名前であり、小さな文字と数字のみです。
Nftwの答えに基づいて...
エラーの問題を見つけやすくするために、grep
とless
を次の変数とともに使用しました。
$correlationId ='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # store your correlation ID here
Get-AzureRmLog -CorrelationId $correlationID -DetailedOutput | grep -C 10 $correlationID | less
私のテストでは、エラーは出力の上部近くにありました。 less
とスラッシュキーを使用できます / 「エラー」を検索して、エラーをさらにすばやく見つけます。