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:

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.

Képernyőkép a Visual Studio Code-ról piros hullámos vonallal, amely egy Szintaktikai hibát emel ki egy Bicep-fájlban.

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.

Képernyőkép egy részletes hibaüzenetről, amely a Visual Studio Code-ban jelenik meg, amikor egy Bicep-fájlban szintaxishiba fölé viszi az egérmutatót.

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.

Képernyőkép Azure Portal üzembe helyezési előzmények szakaszáról, amelyen nem található üzembe helyezés Bicep-fájlhoz.

A sikertelen üzembe helyezés azonban megtalálható a tevékenységnaplóban.

Képernyőkép Azure Portal tevékenységnaplóról, amely egy Bicep-fájl üzembe helyezésének előzetes ellenőrzési hibáját jeleníti meg.

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.

Képernyőkép Azure Portal üzembe helyezési előzmények szakaszáról, amely egy Bicep-fájl sikertelen üzembe helyezését mutatja.

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:

  1. A Azure Portal írja be az Erőforráscsoportok kifejezést a keresőmezőbe.
  2. A Szűrés név alapján mezőbe írja be az erőforráscsoport nevét.
  3. Válassza ki az erőforráscsoport nevét.
  4. Válassza az Erőforráscsoport törlése elemet.
  5. 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.