Rychlý start: Řešení potíží s nasazeními souborů Bicep
Tento rychlý start popisuje, jak řešit chyby nasazení souboru Bicep. Vytvoříte soubor 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í. Soubor Bicep s chybami syntaxe se nezkompiluje do formátu JSON a není zobrazený v protokolu aktivit.
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 Bicep.
- Nejnovější verze rozhraní příkazového řádku Azure PowerShell Azure CLI.
Vytvoření souboru Bicep s chybami
Zkopírujte následující soubor Bicep a uložte ho 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 pojmenovali troubleshoot.bicep, ale můžete ho pojmenovat libovolným názvem.
@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
Oprava chyby ověřování
Otevřete soubor v Visual Studio Code. Všimněte si, že Visual Studio Code identifikuje chybu syntaxe. První deklarace parametru je označena červenouquiggles, která označuje chybu.
Řádky označené chybou jsou:
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
parameter storageAccountType string = 'Standard_LRS'
Když najedete myší parameter na , zobrazí se chybová zpráva.
Stavy zpráv: "Tento typ deklarace není rozpoznán. Zadejte parametr, proměnnou, prostředek nebo deklaraci výstupu." Pokud se pokusíte tento soubor nasadit, zobrazí se stejná chybová zpráva z příkazu nasazení.
Pokud se podíváte na dokumentaci pro deklaraci parametru, uvidíte, že klíčové slovo je ve skutečnosti param . Když tuto syntaxi změníte, chyba ověření zmizí. Dekorátor byl také označen jako chyba, ale tato chyba je vyřešena také @allowed změnou deklarace parametru. Dekorátor byl označen jako chyba, protože očekává deklaraci parametru po dekoratéru. Tato podmínka nebyla pravdivá, pokud byla deklarace nesprávná.
Pevný řádek je:
param storageAccountType string = 'Standard_LRS'
Oprava předběžné chyby
Teď, když jste opravili chybu ověřování, je čas soubor nasadit. Poskytnete ale chybnou hodnotu parametru, abyste viděli předběžnou chybu.
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 určuje, že název účtu úložiště obsahuje znaky, které nejsou povolené. O nasazení se nepokusí.
Zobrazí se chybová zpráva, která indikuje, že předběžné ověření selhalo. Zobrazí se také zpráva, že název účtu úložiště musí mít délku 3 až 24 znaků a musí obsahovat jenom číslice a malá písmena. Předpona, kterou jste poskytli, tento požadavek nesplňuje. Další informace o tomto kódu chyby najdete v tématu Řešení chyb pro názvy účtů úložiště.
Vzhledem k tomu, že se chyba zachytila předem, v historii neexistuje žádné nasazení.
Neúspěšné nasazení však existuje v protokolu aktivit.
Můžete otevřít podrobnosti o položce protokolu a zobrazit chybovou zprávu.
Oprava chyby nasazení
Soubor znovu nasadíte a poskytnete povolenou hodnotu parametru předpony názvu.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.bicep \
--parameters prefixName=stg
Nasazení se spustí, ale selže se zprávou, že se virtuální síť nenašla. Tuto chybu obvykle opravíte změnou odkazu na prostředek. V tomto rychlém startu odstraníte odkaz. Další informace o tomto kódu chyby najdete v tématu Řešení chyb typu Prostředek nebyl nalezen.
Na portálu si všimněte, že se nasazení zobrazuje v historii.
Můžete otevřít položku v historii nasazení a získat podrobnosti o chybě. Chyba také existuje v protokolu aktivit.
Soubor Bicep se pokusí odkazovat na virtuální síť, která ve vaší skupině prostředků neexistuje. Odstraňte odkaz na existující virtuální síť a opravte chybu.
@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: {}
}
output storageAccountName string = storageAccountName
Tento soubor Bicep můžete nasadit bez chyb.
Vyčištění prostředků
Pokud už prostředky Azure nepotřebujete, odstraňte skupinu prostředků. Skupinu prostředků můžete odstranit z Cloud Shell portálu.
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 potíže s chybami nasazení souborů Bicep.