Rychlý start: Řešení potíží s nasazeními šablon ARM
Tento rychlý start popisuje, jak řešit Azure Resource Manager nasazení šablony (šablony ARM). Nastavíte šablonu s chybami a dozvíte se, jak chyby opravit.
S nasazením souvisejí tři typy chyb:
- K chybám ověřování dochází před zahájením nasazení a jsou způsobeny chybami syntaxe ve vašem souboru. Tyto chyby může identifikovat váš editor.
- K chybám předběžného ověření dochází při spuštění příkazu nasazení, ale prostředky nejsou nasazené. Tyto chyby se naštou bez spuštění nasazení. Pokud je například hodnota parametru nesprávná, chyba se nachází v předběžném ověření.
- K chybám nasazení dochází během procesu nasazení a vyhodnocuje se pouze průběh nasazení.
Všechny typy chyb vrátí kód chyby, který použijete k řešení potíží s nasazením. Ověřovací a předběžné chyby se zobrazují v protokolu aktivit, ale nezobrazují se v historii nasazení.
Požadavky
K dokončení tohoto rychlého startu potřebujete následující položky:
- Pokud předplatné Azure ještě nemáte, napřed si vytvořte bezplatný účet.
- Visual Studio Code s nejnovějším rozšířením Azure Resource Manager Tools.
- Nainstalujte si nejnovější verzi Azure PowerShell nebo Azure CLI.
Vytvoření šablony s chybami
Zkopírujte následující šablonu a uložte ji místně. Tento soubor použijete k řešení potíží s chybou ověřování, předběžnou chybou a chybou nasazení. V tomto rychlém startu se předpokládá, že jste soubor troubleshoot.json pojmenovali, ale můžete použít libovolný název.
{
"$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')]"
}
}
}
Oprava chyby ověřování
Otevřete soubor v Visual Studio Code. Vlnovkou pod parameterss: řádkou je chyba. Pokud chcete zobrazit chybu ověření, najeďte myší na chybu.
Všimněte si, že variables a mají chyby pro resources nedefinovaný odkaz na parametr. Pokud chcete zobrazit chyby ověřování šablony, vyberte Zobrazit > problémy.
Všechny chyby jsou způsobeny nesprávným pravopisem názvu prvku.
"parameterss": {
Chybová zpráva uvádí, že ověření šablony selhalo: Nepodařilo se najít člena parameterss u objektu typu Template. Cesta parameterss, řádek 4, pozice 16.
Syntaxe šablony ARM pro parametry ukazuje, parameters že je správný název elementu.
Pokud chcete opravit chybu ověřování a chyby nedefinovaných odkazů na parametry, opravte pravopis a uložte soubor.
"parameters": {
Oprava předběžné chyby
Pokud chcete vytvořit předběžnou chybu ověřování, použijete pro parametr nesprávnou prefixName hodnotu.
V tomto rychlém startu se jako název skupiny prostředků používá troubleshootRG, ale můžete použít libovolný název.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.json \
--parameters prefixName=long!!StoragePrefix
Šablona selže předběžné ověření a nasazení se nespouštělo. Znak prefixName je více než 11 znaků a obsahuje speciální znaky a velká písmena.
Storage musí mít 3 až 24 znaků a používat pouze malá písmena a číslice. Hodnota předpony vytvořila neplatný název úložiště. Další informace najdete v tématu Řešení chyb týkajících se názvů účtů úložiště. Pokud chcete opravit předběžnou chybu, použijte předponu, která má 11 znaků nebo méně a obsahuje pouze malá písmena nebo číslice.
Vzhledem k tomu, že se nasazení nespouštěl, neexistuje žádná historie nasazení.
V protokolu aktivit se zobrazuje předběžná chyba. Výběrem protokolu zobrazíte podrobnosti o chybě.
Oprava chyby nasazení
Spusťte nasazení s platnou hodnotou předpony, například storage .
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.json \
--parameters prefixName=storage
Nasazení začíná a je viditelné v historii nasazení. Nasazení selže, outputs protože odkazuje na virtuální síť, která ve skupině prostředků neexistuje. U účtu úložiště ale nebyly žádné chyby, takže se prostředek nasadil. Historie nasazení ukazuje neúspěšné nasazení.
Pokud chcete opravit chybu nasazení, změňte referenční funkci tak, aby se používá platný prostředek. Další informace najdete v tématu Řešení chyb typu Prostředek nebyl nalezen. V tomto rychlém startu odstraňte čárku, která předchází, a vnetResult všechny vnetResult položky . Uložte soubor a spusťte nasazení znovu.
"vnetResult": {
"type": "object",
"value": "[reference(resourceId('Microsoft.Network/virtualNetworks', 'doesnotexist'), '2021-03-01', 'Full')]"
}
Po ověření, předběžném ověření a opravení chyb nasazení nasadí následující šablona účet úložiště. Historie nasazení a protokol aktivit ukazují úspěšné nasazení.
{
"$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')]"
}
}
}
Vyčištění prostředků
Pokud už prostředky Azure nepotřebujete, odstraňte skupinu prostředků.
az group delete --name troubleshootRG
Pokud chcete odstranit skupinu prostředků z portálu, postupujte takto:
- Do Azure Portal zadejte Skupiny prostředků.
- Do pole Filtrovat podle názvu zadejte název skupiny prostředků.
- Vyberte název skupiny prostředků.
- Vyberte Odstranit skupinu prostředků.
- Odstranění potvrdíte tak, že zadáte název skupiny prostředků a vyberete Odstranit.
Další kroky
V tomto rychlém startu jste zjistili, jak řešit chyby nasazení šablony ARM.