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.
In dieser Schnellstartanleitung wird beschrieben, wie Sie Bicep-Dateibereitstellungsfehler beheben. Sie erstellen eine Datei mit Fehlern und erfahren, wie Sie die Fehler beheben.
Es gibt drei Arten von Fehlern, die mit einer Bereitstellung zusammenhängen:
- Validierungsfehler treten auf, bevor eine Bereitstellung beginnt und werden durch Syntaxfehler in Ihrer 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. Eine Bicep-Datei mit Syntaxfehlern wird weder in JSON kompiliert noch im Aktivitätsprotokoll angezeigt.
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 Bicep-Erweiterung.
- Die neueste Version von Azure PowerShell oder Azure CLI.
Erstellen einer Bicep-Datei mit Fehlern
Kopieren Sie die folgende Bicep-Datei, 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 Datei "troubleshoot.bicep " benannt haben, aber Sie können ihm einen beliebigen Namen geben.
@description('SKU for the storage account')
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
parameter storageAccountType string = 'Standard_LRS'
@description('Prefix for storage name.')
param prefixName string
var storageAccountName = '${prefixName}${uniqueString(resourceGroup().id)}'
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
name: storageAccountName
___location: resourceGroup().___location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {}
}
resource existingVNet 'Microsoft.Network/virtualNetworks@2021-03-01' existing = {
name: 'doesnotexist'
}
output storageAccountName string = storageAccountName
output vnetResult object = existingVNet
Validierungsfehler beheben
Öffnen Sie die Datei in Visual Studio Code. Sie werden feststellen, dass Visual Studio Code einen Syntaxfehler identifiziert. Die erste Parameterdeklaration ist mit roten Schnörkeln markiert, um einen Fehler anzuzeigen.
Die Zeilen, die mit einem Fehler gekennzeichnet sind, sind:
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
parameter storageAccountType string = 'Standard_LRS'
Wenn Sie mit der Maus darauf zeigen parameter
, wird eine Fehlermeldung angezeigt.
Die Meldung lautet: Dieser Deklarationstyp wird nicht erkannt. Geben Sie einen Parameter, eine Variable, eine Ressource oder eine Ausgabedeklaration an. Sollten Sie versuchen, diese Datei bereitzustellen, erhalten Sie dieselbe Fehlermeldung aus dem Bereitstellungsbefehl.
Wenn Sie sich die Dokumentation für eine Parameterdeklaration ansehen, werden Sie feststellen, dass das Schlüsselwort tatsächlich param
ist. Wenn Sie diese Syntax ändern, wird der Überprüfungsfehler ausgeblendet. Der @allowed
Dekorateur wurde auch als Fehler gekennzeichnet, aber dieser Fehler wird auch durch Ändern der Parameterdeklaration behoben. Das Decorator-Element wurde als Fehler markiert, weil nach dem Decorator eine Parameterdeklaration erwartet wird. Diese Bedingung war nicht wahr, wenn die Deklaration falsch war.
Die korrigierte Zeile lautet:
param storageAccountType string = 'Standard_LRS'
Preflight-Fehler beheben
Nachdem Sie den Überprüfungsfehler behoben haben, ist es an der Zeit, die Datei bereitzustellen. Wenn Sie einen falschen Parameterwert angeben, wird ein Preflight-Fehler angezeigt.
az group create --name troubleshootRG --___location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.bicep \
--parameters prefixName=longNamewith!!Charactersthatarenotallowed
Azure Resource Manager bestimmt, dass der Name des Speicherkontos Zeichen enthält, die nicht zulässig sind. Es wird nicht versucht, die Bereitstellung zu starten.
Es wird eine Fehlermeldung angezeigt, die angibt, dass die Vorabüberprüfung fehlgeschlagen ist. Sie erhalten auch eine Meldung, die besagt, dass der Name des Speicherkontos zwischen 3 und 24 Zeichen lang sein muss und nur Zahlen und Kleinbuchstaben verwenden. Das von Ihnen angegebene Präfix erfüllt diese Anforderung nicht. Weitere Informationen zu diesem Fehlercode finden Sie unter Beheben von Fehlern für Speicherkontonamen.
Da der Fehler beim Preflight aufgetreten ist, wird im Verlauf keine Bereitstellung angezeigt.
Die fehlgeschlagene Bereitstellung ist jedoch im Aktivitätsprotokoll vorhanden.
Sie können Details des Protokolleintrags öffnen, um die Fehlermeldung anzuzeigen.
Einsatzfehler beheben
Sie stellen die Datei erneut bereit und geben einen zulässigen Wert für den Namenspräfixparameter an.
az group create --name troubleshootRG --___location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.bicep \
--parameters prefixName=stg
Die Bereitstellung wird gestartet, schlägt jedoch fehl mit einer Meldung, dass das virtuelle Netzwerk nicht gefunden wurde. Normalerweise würden Sie diesen Fehler beheben, indem Sie den Verweis auf die Ressource ändern. In dieser Schnellstartanleitung löschen Sie den Verweis. Weitere Informationen zu diesem Fehlercode finden Sie unter Beheben von Fehlern des Typs „Ressource nicht gefunden“.
Beachten Sie im Portal, dass die Bereitstellung in der Historie angezeigt wird.
Sie können den Eintrag im Bereitstellungsverlauf öffnen, um Details zum Fehler zu erhalten. Der Fehler ist auch im Aktivitätsprotokoll vorhanden.
Die Bicep-Datei versucht, auf ein virtuelles Netzwerk zu verweisen, das in Ihrer Ressourcengruppe nicht vorhanden ist. Löschen Sie den Verweis auf das vorhandene virtuelle Netzwerk, um den Fehler zu beheben.
@description('SKU for the storage account')
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
@description('Prefix for storage name.')
param prefixName string
var storageAccountName = '${prefixName}${uniqueString(resourceGroup().id)}'
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
name: storageAccountName
___location: resourceGroup().___location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {}
}
output storageAccountName string = storageAccountName
Sie können diese Bicep-Datei ohne Fehler bereitstellen.
Bereinigen von Ressourcen
Wenn die Azure-Ressourcen nicht mehr benötigt werden, löschen Sie die Ressourcengruppe. Sie können die Ressourcengruppe aus Cloud Shell oder dem Portal löschen.
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 dieser Schnellstartanleitung haben Sie erfahren, wie Sie Bicep-Dateibereitstellungsfehler beheben.