Wanneer de implementatie van een Azure-resource mislukt met behulp van Azure Resource Manager-sjablonen (ARM-sjablonen) of Bicep-bestanden, wordt er een foutcode ontvangen. In dit artikel wordt beschreven hoe u foutcodes kunt vinden, zodat u het probleem kunt oplossen. Zie Veelvoorkomende implementatiefouten voor meer informatie over foutcodes.
Fouttypen
Er zijn drie typen fouten die gerelateerd zijn aan een implementatie:
Validatiefouten treden op voordat een implementatie begint en worden veroorzaakt door syntaxisfouten in uw bestand. Een code-editor zoals Visual Studio Code kan deze fouten identificeren.
Preflight-validatiefouten treden op wanneer een implementatieopdracht wordt uitgevoerd, maar resources niet worden geïmplementeerd. Deze fouten worden gevonden zonder de implementatie te starten. Als een parameterwaarde bijvoorbeeld onjuist is, wordt de fout gevonden in de validatie vooraf.
Implementatiefouten treden op tijdens het implementatieproces en kunnen alleen worden gevonden door de voortgang van de implementatie in uw Azure-omgeving te beoordelen.
Beide typen fouten retourneren een foutcode die je gebruikt om de problemen met de implementatie op te lossen. Validatie- en voorbereidende fouten worden weergegeven in het activiteitenlogboek, maar worden niet weergegeven in je implementatiegeschiedenis. Een Bicep-bestand met syntaxisfouten wordt niet gecompileerd in JSON en wordt niet weergegeven in het activiteitenlogboek.
Sjablonen worden gevalideerd tijdens het implementatieproces en foutcodes worden weergegeven. Voordat u een implementatie uitvoert, kunt u validatie- en voorbereidende fouten identificeren door validatietests uit te voeren met Azure PowerShell of Azure CLI.
Een ARM-sjabloon kan worden geïmplementeerd vanuit de portal. Als de sjabloon syntaxisfouten bevat, ziet u een validatiefout wanneer u de implementatie probeert uit te voeren. Zie Resources implementeren vanuit een aangepaste sjabloon voor meer informatie over portalimplementaties.
In het volgende voorbeeld wordt geprobeerd een opslagaccount te implementeren en treedt er een validatiefout op.
Selecteer het bericht voor meer informatie. De sjabloon heeft een syntaxisfout met foutcode InvalidTemplate. In De Samenvatting ziet u dat een expressie een haakje sluiten mist.
In de uitvoer worden foutcodes weergegeven zoals InvalidTemplateDeployment of AccountNameInvalid die u kunt gebruiken om problemen met de sjabloon op te lossen.
Voor een Bicep-bestand toont de uitvoer voor een probleem met syntaxisvalidatie een parameterfout.
Test-AzResourceGroupDeployment: Cannot retrieve the dynamic parameters for the cmdlet.
Cannot find path '/tmp/11111111-1111-1111-1111-111111111111/main.json' because it does not exist.
Gebruik de opdracht Bicep build voor meer informatie over het oplossen van problemen. In de uitvoer ziet u het regel- en kolomnummer van elke fout tussen haakjes en het foutbericht.
bicep build main.bicep
/azuredeploy.bicep(22,51) : Error BCP064: Found unexpected tokens in interpolated expression.
/azuredeploy.bicep(22,51) : Error BCP004: The string at this location is not terminated due to an
unexpected new line character.
Andere bereiken
Er zijn Azure PowerShell cmdlets voor het valideren van implementatiesjablonen voor het abonnement, de beheergroep en de tenantbereiken.
az deployment group validate \
--resource-group examplegroup \
--template-file azuredeploy.json
In de uitvoer worden foutcodes weergegeven zoals InvalidTemplateDeployment of AccountNameInvalid die u kunt gebruiken om problemen met de sjabloon op te lossen.
Voor een Bicep-bestand toont de uitvoer het regel- en kolomnummer van elke fout tussen haakjes en het foutbericht.
az deployment group validate \
--resource-group examplegroup \
--template-file main.bicep
/azuredeploy.bicep(22,51) : Error BCP064: Found unexpected tokens in interpolated expression.
/azuredeploy.bicep(22,51) : Error BCP004: The string at this location is not terminated due to an
unexpected new line character.
Andere bereiken
Er zijn Azure CLI-opdrachten voor het valideren van implementatiesjablonen voor het abonnement, de beheergroep en de tenantbereiken.
Er worden verschillende bewerkingen verwerkt om een Azure-resource te implementeren. Implementatiefouten treden op wanneer een bewerking is gevalideerd, maar mislukt tijdens de implementatie. U kunt berichten weergeven over elke implementatiebewerking en elke implementatie voor een resourcegroep.