web-dev-qa-db-ja.com

Azure ARMテンプレート検証エラーをトラブルシューティングするにはどうすればよいですか?

Azure ARMテンプレートファイルにいくつかの小さな変更を加えましたが、xplat cliを介してデプロイまたは検証を試みると、このメッセージが表示されます。

エラー:InvalidTemplateDeployment:テンプレート展開 'fakedDeploymentName'は検証手順に従って無効です。トラッキングIDは「\ some kind of GUID here \」です。詳細については内部エラーを参照してください。 http://aka.ms/arm-deploy を参照してください。使用方法の詳細。

エラー:PreflightValidationCheckFailed:プリフライトの検証に失敗しました。特定のエラーの詳細を参照してください。

この問題をトラブルシューティングしたいのですが、コンソールに「内部エラー」は表示されません。毎回一意のGUID=を提供します。これは、このGUIDを使用して、より有益なメッセージを検索できることを意味します。エラー?(エラーの実際の原因に関するヘルプをまだ探していません)

26
awl

CLIの最新バージョンを実行していることを確認してください。詳細なエラーのバブルアップに取り組んでいます。それでも問題が解決しない場合は、お知らせください https://github.com/Azure/azure-xplat-cli/issues

その後、ログに詳細が表示されない場合は、-vvスイッチを使用して展開を実行します。詳細なデバッグ出力(詳細)にすべてのエラーメッセージが含まれ、通常、特定の障害を選別して見つけることができます。

Azure group deployment create ... -vv

パワーシェル:

New-AzureRmResourceGroupDeployment ... -debug
20
bmoore-msft

Azure portal portal.Azure.comにログインします。

アクティビティログを開く

アクティビティのリストで、検証の操作名を持つレコードを見つけます。失敗したため、赤い感嘆符が付いているはずです。

そのレコードをクリックします。次に、下部の[JSON]タブをクリックします。読んで、返されたJsonのどこかで、「helloworldという名前のストレージアカウントが既に使用されています」などのエラーがstatusMessageで見つかる場合があります。

36
Robert Newby

提供されたトラッキングIDで次のPowerShell Azureコマンドレットを実行します。

Get-AzureRMLog -CorrelationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -DetailedOutput

14
nftw

トラッキング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
1
OzBob

私は同じ問題を抱えていました。基本的に、「InvalidTemplateDeployment」に渡される詳細を取得できませんでした。

Visual Studio:Azure Resource GroupプロジェクトテンプレートにARMテンプレートを追加し、デプロイしようとしました。[出力]タブに詳細な情報が表示されました。問題の解決に役立ちました。

私の場合、それはクラスターの名前であり、小さな文字と数字のみです。

0
Tudor Muresan

Nftwの答えに基づいて...

エラーの問題を見つけやすくするために、greplessを次の変数とともに使用しました。

$correlationId ='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # store your correlation ID here
Get-AzureRmLog -CorrelationId $correlationID -DetailedOutput | grep -C 10 $correlationID | less

私のテストでは、エラーは出力の上部近くにありました。 lessとスラッシュキーを使用できます / 「エラー」を検索して、エラーをさらにすばやく見つけます。

0
cody.codes