web-dev-qa-db-fra.com

Comment puis-je dépanner Azure ARM erreurs de validation du modèle?

J'ai apporté quelques petites modifications à un fichier de modèle Azure ARM et maintenant, lorsque j'essaie de déployer ou de valider via le cli xplat, je reçois ce message.

erreur: InvalidTemplateDeployment: le déploiement de modèle 'fakedDeploymentName' n'est pas valide selon la procédure de validation. L'identifiant de suivi est '\ une sorte de GUID ici \'. Voir les erreurs internes pour plus de détails. Veuillez voir http://aka.ms/arm-deploy pour détails d'utilisation.

erreur: PreflightValidationCheckFailed: la validation du contrôle en amont a échoué. Veuillez vous référer aux détails pour les erreurs spécifiques.

Je serais ravi de résoudre ce problème, mais je ne vois aucune "erreur interne" sur la console. Il me donne même un GUID unique à chaque fois, ce qui implique que je pourrais utiliser ce GUID pour rechercher un message plus informatif. Où puis-je voir un plus détaillé erreur? (ne cherche pas encore d'aide sur la véritable source de l'erreur)

26
awl

Assurez-vous que vous exécutez la dernière version de la CLI, nous travaillons sur la propagation de l'erreur détaillée. Si ce n'est toujours pas le cas, faites-le nous savoir https://github.com/Azure/azure-xplat-cli/issues

Ensuite, si le journal ne vous montre pas les détails, exécutez le déploiement avec le commutateur -vv, la sortie de débogage détaillée (bien que détaillée) contiendra tous les messages d'erreur et vous pouvez généralement passer au crible et rechercher l'échec spécifique.

Azure group deployment create ... -vv

Powershell:

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

Connectez-vous au portail Azure portal.Azure.com.

Ouvrez le journal d'activité

Recherchez l'enregistrement avec le nom de l'opération de validation dans la liste des activités. Il devrait avoir un point d'exclamation rouge car il a échoué.

Cliquez dessus cet enregistrement. Cliquez ensuite sur l'onglet JSON en bas. Obtenez la lecture et quelque part au fond de Json retourné, vous pourriez trouver une erreur dans le statusMessage tel que "Le compte de stockage nommé helloworld est déjà pris."

36
Robert Newby

Exécutez l'applet de commande PowerShell Azure suivante avec l'ID de suivi fourni:

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

14
nftw

Je pense que l'ID de suivi sert au support technique pour consulter leurs journaux, pas à l'utilisateur. Concernant votre question exacte, vous devez jeter un œil aux journaux - référence .

Un autre bon moyen de valider le modèle consiste à utiliser Explorateur de ressources .

1

S'appuyant sur @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

Je courais dans le même numéro. Fondamentalement, je n'ai pas pu obtenir de détails "InvalidTemplateDeployment".

J'ai ajouté mon modèle ARM dans un modèle de projet Visual Studio: Azure Resource Group et j'ai essayé de le déployer. J'ai obtenu des détails détaillés dans l'onglet Sortie. Cela m'a aidé à résoudre mon problème.

Dans mon cas, c'était le nom du cluster, il ne peut s'agir que de lettres minuscules et de chiffres.

0
Tudor Muresan

S'appuyant sur la réponse de nftw ...

Pour accélérer/trouver plus facilement le problème d'erreur, j'ai utilisé grep et less avec une variable comme suit:

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

Lors de mes tests, l'erreur était proche du haut de la sortie. Vous pouvez utiliser less et la touche de barre oblique / et recherchez "erreur" pour trouver l'erreur encore plus rapidement.

0
cody.codes