Een sjabloon voor probleemoplossing maken
In sommige gevallen kunt u het beste problemen met uw sjabloon oplossen door specifieke onderdelen ervan te isoleren en te testen. U kunt een sjabloon voor probleemoplossing maken die is gericht op de resource waarvan u denkt dat deze de fout veroorzaakt.
Er treedt bijvoorbeeld een fout op wanneer uw implementatiesjabloon verwijst naar een bestaande resource. In plaats van een volledige implementatiesjabloon te evalueren, maakt u een sjabloon voor probleemoplossing die gegevens over de resource retourneert. De uitvoer helpt u te bepalen of u de juiste parameters doorgeeft, sjabloonfuncties correct gebruikt en de resource krijgt die u verwacht.
Een sjabloon voor probleemoplossing implementeren
Met de volgende ARM-sjabloon en bicep-bestand wordt informatie opgehaald uit een bestaand opslagaccount. U voert de implementatie uit met Azure PowerShell New-AzResourceGroupDeployment of Azure CLI az deployment group create. Geef de naam en resourcegroep van het opslagaccount op. De uitvoer is een object met de eigenschapsnamen en -waarden van het opslagaccount.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string"
},
"storageResourceGroup": {
"type": "string"
}
},
"variables": {},
"resources": [],
"outputs": {
"exampleOutput": {
"value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageName')), '2022-05-01')]",
"type": "object"
}
}
}
Gebruik in Bicep het existing
trefwoord en voer de implementatie uit vanuit de resourcegroep waarin het opslagaccount zich bevindt. Gebruik scope
om toegang te krijgen tot een resource in een andere resourcegroep. Zie bestaande resources voor meer informatie.
param storageName string
resource stg 'Microsoft.Storage/storageAccounts@2022-05-01' existing = {
name: storageName
}
output exampleOutput object = stg.properties
Alternatieve methode voor probleemoplossing
Als u denkt dat de implementatiefouten worden veroorzaakt door onjuiste afhankelijkheden, kunt u tests uitvoeren door de sjabloon op te delen in vereenvoudigde sjablonen. Maak eerst een sjabloon waarmee slechts één resource wordt geïmplementeerd (zoals een SQL Server). Wanneer u zeker weet dat de resource-implementatie juist is, voegt u een resource toe die hiervan afhankelijk is (zoals een SQL Database). Wanneer deze twee resources juist zijn gedefinieerd, voegt u andere afhankelijke resources toe (zoals controlebeleid). Verwijder tussen elke testimplementatie de resourcegroep om ervoor te zorgen dat u de afhankelijkheden adequaat test.