Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Schnellstart beschreibt, wie Sie Fehler bei der Bereitstellung von JSON-Azure Resource Manager-Vorlagen (ARM-Vorlagen) beheben können. Sie richten eine Vorlage mit Fehlern ein und erfahren, wie Sie die Fehler beheben.
Eine Azure Resource Manager-Vorlage ist eine JSON-Datei (JavaScript Object Notation), die die Infrastruktur und Konfiguration für Ihr Projekt definiert. Die Vorlage verwendet eine deklarative Syntax. Sie beschreiben Ihre geplante Bereitstellung, ohne die Abfolge der Programmierbefehle zu schreiben, mit denen die Bereitstellung erstellt wird.
Es gibt drei Arten von Fehlern, die mit einer Bereitstellung zusammenhängen:
- Überprüfungsfehler treten auf, bevor eine Bereitstellung beginnt und werden durch Syntaxfehler in der Datei verursacht. Mit einem Code-Editor wie Visual Studio Code können diese Fehler identifiziert werden.
- Preflight-Überprüfungsfehler treten auf, wenn ein Bereitstellungsbefehl ausgeführt wird, ressourcen jedoch nicht bereitgestellt werden. Diese Fehler werden gefunden, ohne dass die Bereitstellung gestartet wird. Wenn zum Beispiel ein Parameterwert falsch ist, wird der Fehler bei der Preflight-Validierung gefunden.
- Bereitstellungsfehler treten während des Bereitstellungsprozesses auf und können nur gefunden werden, indem der Fortschritt der Bereitstellung in Ihrer Azure-Umgebung bewertet wird.
Alle Fehlertypen geben einen Fehlercode zurück, den Sie bei der Fehlersuche in der Bereitstellung verwenden können. Validierungs- und Preflight-Fehler werden im Aktivitätsprotokoll angezeigt, aber nicht im Bereitstellungsverlauf.
Voraussetzungen
Um diesen Schnellstart durchzuführen, benötigen Sie die folgenden Gegenstände:
- Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
- Visual Studio Code mit der neuesten Azure Resource Manager Tools-Erweiterung.
- Installieren Sie die neueste Version von Azure PowerShell oder Azure CLI.
Eine Vorlage mit Fehlern erstellen
Kopieren Sie die folgende Vorlage, und speichern Sie sie lokal. Sie verwenden diese Datei, um einen Validierungsfehler, einen Preflight-Fehler und einen Bereitstellungsfehler zu beheben. In dieser Schnellstartanleitung wird davon ausgegangen, dass Sie die Dateitroubleshoot.jsonbenannt haben , aber Sie können einen beliebigen Namen verwenden.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameterss": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"prefixName": {
"type": "string"
}
},
"variables": {
"storageAccountName": "[concat(parameters('prefixName'), uniquestring(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[variables('storageAccountName')]"
},
"vnetResult": {
"type": "object",
"value": "[reference(resourceId('Microsoft.Network/virtualNetworks', 'doesnotexist'), '2021-03-01', 'Full')]"
}
}
}
Validierungsfehler beheben
Öffnen Sie die Datei in Visual Studio Code. Die Wellenlinie unter parameterss:
weist auf einen Fehler hin. Zeigen Sie auf den Fehler, um den Validierungsfehler anzuzeigen.
Sie werden feststellen, dass variables
und resources
Fehler bei nicht definierten Parameterreferenzen auftreten. Um die Überprüfungsfehler der Vorlage anzuzeigen, wählen Sie "Probleme anzeigen"> aus.
Alle Fehler werden durch einen falsch geschriebenen Elementnamen verursacht.
"parameterss": {
Die Fehlermeldung lautet Vorlagenüberprüfung fehlgeschlagen: Mitglied 'parameterss' im Objekt des Typs 'Template' konnte nicht gefunden werden. Pfad 'parameterss', Zeile 4, Position 16.
Die ARM-Vorlagensyntax für Parameter zeigt, dass parameters
es sich um den richtigen Elementnamen handelt.
Korrigieren Sie die Rechtschreibung, und speichern Sie die Datei, um den Überprüfungsfehler und die nicht definierten Parameterverweisfehler zu beheben.
"parameters": {
Preflight-Fehler beheben
Verwenden Sie einen falschen Wert für den Parameter prefixName
, um einen Fehler bei der Preflightüberprüfung zu verursachen.
In diesem Quickstart wird troubleshootRG als Ressourcengruppenname verwendet, Sie können jedoch einen beliebigen Namen nutzen.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.json \
--parameters prefixName=long!!StoragePrefix
Die Preflightüberprüfung für die Vorlage ist nicht erfolgreich, und die Bereitstellung wird nicht ausgeführt.
prefixName
ist mehr als elf Zeichen lang und enthält Sonderzeichen und Großbuchstaben.
Speichernamen müssen zwischen drei und 24 Zeichen lang sein und dürfen nur Kleinbuchstaben und Ziffern enthalten. Durch den Präfixwert ist ein ungültiger Speichername entstanden. Weitere Informationen finden Sie unter Beheben von Fehlern für Speicherkontonamen. Um den Preflightfehler zu beheben, verwenden Sie ein Präfix mit maximal elf Zeichen, das nur Kleinbuchstaben oder Zahlen enthält.
Da die Bereitstellung nicht ausgeführt wurde, gibt es auch keinen Bereitstellungsverlauf.
Das Aktivitätsprotokoll enthält den Preflightfehler. Wählen Sie das Protokoll aus, um die Details des Fehlers anzuzeigen.
Einsatzfehler beheben
Führen Sie die Bereitstellung mit einem gültigen Präfixwert (beispielsweise storage
) aus.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.json \
--parameters prefixName=storage
Die Bereitstellung beginnt und wird im Bereitstellungsverlauf angezeigt. Die Bereitstellung ist nicht erfolgreich, da von outputs
auf ein virtuelles Netzwerk verwiesen wird, das in der Ressourcengruppe nicht vorhanden ist. Da jedoch keine Fehler für das Speicherkonto aufgetreten sind, wurde die Ressource bereitgestellt. Der Bereitstellungsverlauf enthält eine nicht erfolgreiche Bereitstellung.
Um den Bereitstellungsfehler zu beheben, ändern Sie die Verweisfunktion so, dass eine gültige Ressource verwendet wird. Weitere Informationen finden Sie unter Beheben von 'Ressource nicht gefunden'-Fehlern. Löschen Sie für diese Schnellstartanleitung das Komma vor vnetResult
und den gesamten Code für vnetResult
. Speichern Sie anschließend die Datei, und führen Sie die Bereitstellung erneut aus.
"vnetResult": {
"type": "object",
"value": "[reference(resourceId('Microsoft.Network/virtualNetworks', 'doesnotexist'), '2021-03-01', 'Full')]"
}
Nachdem die Überprüfungs-, Preflight- und Bereitstellungsfehler behoben wurden, stellt die folgende Vorlage ein Speicherkonto bereit. Bereitstellungsverlauf und Aktivitätsprotokoll enthalten jeweils eine erfolgreiche Bereitstellung.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"prefixName": {
"type": "string"
}
},
"variables": {
"storageAccountName": "[concat(parameters('prefixName'), uniquestring(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[variables('storageAccountName')]"
}
}
}
Bereinigen von Ressourcen
Wenn die Azure-Ressourcen nicht mehr benötigt werden, löschen Sie die Ressourcengruppe.
az group delete --name troubleshootRG
Um die Ressourcengruppe aus dem Portal zu löschen, gehen Sie wie folgt vor:
- Geben Sie im Azure-Portal Ressourcengruppen in das Suchfeld ein.
- Geben Sie im Feld "Nach Namen filtern " den Namen der Ressourcengruppe ein.
- Klicken Sie auf den Namen der Ressourcengruppe.
- Wählen Sie " Ressourcengruppe löschen" aus.
- Um den Löschvorgang zu bestätigen, geben Sie den Namen der Ressourcengruppe ein, und wählen Sie "Löschen" aus.
Nächste Schritte
In diesem Schnellstart haben Sie gelernt, wie Sie Fehler bei der Bereitstellung von ARM-Vorlagen beheben können.