Rövid útmutató: Bicep-fájlok üzembe helyezésének hibaelhárítása
Ez a rövid útmutató a Bicep-fájlok üzembehelyezési hibáinak elhárítását ismerteti. Létre fog hozni egy hibákat tartalmazó fájlt, és megtudhatja, hogyan háríthatja el a hibákat.
Az üzembe helyezéssel háromféle hiba függ össze:
- Az érvényesítési hibák az üzembe helyezés megkezdése előtt fordulnak elő, és a fájl szintaxishibái okozzák. A Visual Studio Code-hoz hasonló kódszerkesztők azonosíthatják ezeket a hibákat.
- Előzetes ellenőrzési hibák akkor fordulnak elő, ha egy üzembe helyezési parancs fut, de az erőforrások nincsenek üzembe helyezve. Ezek a hibák az üzembe helyezés elindítása nélkül is felderíthetők. Ha például egy paraméter értéke helytelen, ez a hiba az előzetes ellenőrzés során megtalálható.
- Az üzembehelyezési hibák az üzembehelyezési folyamat során fordulnak elő, és csak az üzembe helyezés előrehaladásának az Azure-környezetben történő felmérésével találhatók meg.
Mindhárom típusú hiba az üzembe helyezés hibaelhárításához használható hibakódot ad vissza. Az érvényesítési és elővizsgálati hibák a tevékenységnaplóban megjelennek, de az üzembe helyezési előzményekben nem. Egy szintaktikai hibákat tartalmazó Bicep-fájl nem lesz JSON-re fordítva, és nem jelenik meg a tevékenységnaplóban.
Előfeltételek
A rövid útmutató elvégzéséhez a következő elemekre van szüksége:
- Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot a feladatok megkezdése előtt.
- Visual Studio Code a legújabb Bicep-bővítménnyel.
- A Azure PowerShell vagy az Azure CLI legújabb verziója.
Bicep-fájl létrehozása hibákkal
Másolja ki a következő Bicep-fájlt, és mentse helyileg. Ezzel a fájllal elháríthatja az érvényesítési, az elővizsgálati és az üzembehelyezési hibákat. Ez a rövid útmutató feltételezi, hogy elnevezte a troubleshoot.bicep fájlt, de bármilyen nevet adhat neki.
@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
Érvényesítési hiba javítása
Nyissa meg a fájlt a Visual Studio Code-ban. Megfigyelheti, hogy a Visual Studio Code szintaxishibát azonosít. Az első paraméterdeklaráció piros hullámos vonallal van megjelölve a hiba jelzéséhez.
A hibával megjelölt sorok a következők:
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
parameter storageAccountType string = 'Standard_LRS'
Ha a fölé viszi az egérmutatót parameter
, hibaüzenet jelenik meg.
Az üzenet a következőt tartalmazza: Ez a deklarációtípus nem ismerhető fel. Adjon meg egy paramétert, változót, erőforrást vagy kimeneti deklarációt. Ha megpróbálja üzembe helyezni ezt a fájlt, ugyanazt a hibaüzenetet kapja az üzembe helyezési parancstól.
Ha megtekinti a paraméterdeklaráció dokumentációját, látni fogja, hogy a kulcsszó valójában param
. Ha módosítja ezt a szintaxist, az érvényesítési hiba eltűnik. A @allowed
dekorátor is hibaként lett megjelölve, de a hiba a paraméterdeklaráció módosításával is megoldódott. A dekorátor hibaként lett megjelölve, mert paraméterdeklarációt vár a dekorátor után. Ez a feltétel nem volt igaz, amikor a deklaráció helytelen volt.
A rögzített sor a következő:
param storageAccountType string = 'Standard_LRS'
Az elővizsgálati hiba javítása
Most, hogy kijavította az érvényesítési hibát, ideje üzembe helyezni a fájlt. Azonban rossz paraméterértéket fog megadni, hogy láthassa az elővizsgálati hibát.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.bicep \
--parameters prefixName=longNamewith!!Charactersthatarenotallowed
Az Azure Resource Manager megállapítja, hogy a tárfiók neve nem engedélyezett karaktereket tartalmaz. Nem kísérli meg az üzembe helyezést.
Megjelenik egy hibaüzenet, amely azt jelzi, hogy az előzetes ellenőrzés sikertelen volt. Egy üzenet arról is tájékoztatja, hogy a tárfiók nevének 3–24 karakter hosszúságúnak kell lennie, és csak számokat és kisbetűket kell használnia. A megadott előtag nem felelt meg ennek a követelménynek. A hibakóddal kapcsolatos további információkért lásd: Tárfióknevek hibáinak elhárítása.
Mivel a hiba előzetes állapotba került, az előzményekben nem található üzembe helyezés.
A sikertelen üzembe helyezés azonban megtalálható a tevékenységnaplóban.
A hibaüzenet megtekintéséhez megnyithatja a naplóbejegyzés részleteit.
Üzembehelyezési hiba javítása
Újra üzembe helyezi a fájlt, és megadja a névelőtag paraméterének engedélyezett értékét.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.bicep \
--parameters prefixName=stg
Az üzembe helyezés elindul, de meghiúsul egy üzenettel, amely szerint a virtuális hálózat nem található. Ezt a hibát általában az erőforrásra mutató hivatkozás módosításával háríthatja el. Ebben a rövid útmutatóban törli a hivatkozást. A hibakóddal kapcsolatos további információkért lásd: Az erőforrás nem található hibáinak elhárítása.
Figyelje meg a portálon, hogy az üzembe helyezés megjelenik az előzmények között.
A hiba részleteinek lekéréséhez nyissa meg a bejegyzést az üzembe helyezési előzmények között. A hiba a tevékenységnaplóban is megtalálható.
A Bicep-fájl olyan virtuális hálózatra próbál hivatkozni, amely nem létezik az erőforráscsoportban. A hiba kijavításához törölje a meglévő virtuális hálózatra mutató hivatkozást.
@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
Ezt a Bicep-fájlt hiba nélkül üzembe helyezheti.
Az erőforrások eltávolítása
Ha az Azure-erőforrásokra már nincs szükség, törölje az erőforráscsoportot. Az erőforráscsoportot törölheti Cloud Shell vagy a portálról.
az group delete --name troubleshootRG
Az erőforráscsoport portálról való törléséhez kövesse az alábbi lépéseket:
- A Azure Portal írja be az Erőforráscsoportok kifejezést a keresőmezőbe.
- A Szűrés név alapján mezőbe írja be az erőforráscsoport nevét.
- Válassza ki az erőforráscsoport nevét.
- Válassza az Erőforráscsoport törlése elemet.
- A törlés megerősítéséhez írja be az erőforráscsoport nevét, és válassza a Törlés lehetőséget.
Következő lépések
Ebben a rövid útmutatóban megtanulta, hogyan háríthatja el a Bicep-fájlok üzembehelyezési hibáit.