Condividi tramite


Guida di avvio rapido - Risolvere i problemi relativi alle distribuzioni con file Bicep

Questa guida di avvio rapido descrive come risolvere i problemi di distribuzione con file Bicep. Si creerà un file con errori e si apprenderà come correggere gli errori.

Alla distribuzione sono correlati tre tipi di errori:

  • Gli errori di convalida si verificano prima dell'inizio di una distribuzione e sono causati da errori di sintassi nel file. Un editor di codice, ad esempio Visual Studio Code, è in grado di identificare questi errori.
  • Gli errori di convalida preliminare si verificano quando viene eseguito un comando di distribuzione, ma le risorse non vengono distribuite. Vengono rilevati senza avviare la distribuzione. Ad esempio, se un valore di parametro non è corretto, l'errore viene rilevato nella convalida preliminare.
  • Gli errori di distribuzione si verificano durante il processo di distribuzione e possono essere trovati solo valutando lo stato di avanzamento della distribuzione nell'ambiente Azure.

Tutti i tipi di errore restituiscono un codice errore usato per risolvere i problemi della distribuzione. Gli errori preliminari e di convalida vengono visualizzati nel log attività ma non nella cronologia della distribuzione. Un file Bicep con errori di sintassi non viene compilato in JSON e non viene visualizzato nel log attività.

Prerequisiti

Per completare questa guida di avvio rapido sono richiesti:

Creare un file Bicep con errori

Copiare il file Bicep seguente e salvarlo in locale. Questo file verrà usato per risolvere un errore di convalida, un errore preliminare e un errore di distribuzione. Questo avvio rapido presuppone che il file troubleshoot.bicep sia stato chiamato così, ma puoi dargli qualsiasi nome.

@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

Correggere un errore di convalida

Aprire il file in Visual Studio Code. Si noterà che Visual Studio Code identifica un errore di sintassi. La prima dichiarazione del parametro è contrassegnata con sottolineature ondulata rosse per indicare un errore.

Screenshot di Visual Studio Code con sottolineature ondulate rosse che evidenziano un errore di sintassi in un file Bicep.

Le righe contrassegnate con un errore sono:

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_ZRS'
  'Premium_LRS'
])
parameter storageAccountType string = 'Standard_LRS'

Quando si passa il puntatore del mouse su parameter, viene visualizzato un messaggio di errore.

Screenshot di un messaggio di errore dettagliato visualizzato in Visual Studio Code quando si passa il mouse su un errore di sintassi in un file Bicep.

Il messaggio indica che questo tipo di dichiarazione non è riconosciuto. Specificare un parametro, una variabile, una risorsa o una dichiarazione di output. Se si tenta di distribuire questo file, verrà visualizzato lo stesso messaggio di errore dal comando di distribuzione.

Se si esamina la documentazione per una dichiarazione di parametro, si noterà che la parola chiave è effettivamente param. Quando si modifica tale sintassi, l'errore di convalida scompare. L'elemento @allowed decorator è stato anche contrassegnato come errore, ma tale errore viene risolto anche modificando la dichiarazione di parametro. L'elemento decorator è stato contrassegnato come errore perché prevede una dichiarazione del parametro dopo l'elemento decorator. Questa condizione non è vera quando la dichiarazione non è corretta.

La linea fissa è:

param storageAccountType string = 'Standard_LRS'

Correggere un errore preliminare

Dopo aver risolto l'errore di convalida, è possibile distribuire il file. Tuttavia, deve essere specificato un valore di parametro non valido per visualizzare un errore preliminare.

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 determina che il nome dell'account di archiviazione contiene caratteri non consentiti. Pertanto non tenta la distribuzione.

Viene visualizzato un messaggio di errore che indica che la convalida preliminare non è riuscita. Viene anche visualizzato un messaggio che indica che il nome dell'account di archiviazione deve avere una lunghezza compresa tra 3 e 24 caratteri e usare solo numeri e lettere minuscole. Il prefisso specificato non soddisfa tale requisito. Per altre informazioni su questo codice di errore, vedere Risolvere gli errori per i nomi degli account di archiviazione.

Poiché l'errore è stato rilevato in fase preliminare, non esiste alcuna distribuzione nella cronologia.

Screenshot della sezione cronologia di distribuzione del portale di Azure che non mostra distribuzioni per un file Bicep.

Tuttavia, la distribuzione non riuscita è presente nel log attività.

Screenshot del log attività del portale di Azure che mostra un errore di convalida preliminare per una distribuzione di file Bicep.

È possibile aprire i dettagli della voce di log per visualizzare il messaggio di errore.

Correggere l'errore di distribuzione

Si distribuirà di nuovo il file e si fornirà un valore consentito per il parametro del prefisso del nome.

az group create --name troubleshootRG --___location westus
az deployment group create \
  --resource-group troubleshootRG \
  --template-file troubleshoot.bicep \
  --parameters prefixName=stg

La distribuzione viene avviata ma ha esito negativo e viene visualizzato un messaggio che informa che la rete virtuale non è stata trovata. In genere, è possibile correggere l'errore modificando il riferimento alla risorsa. In questa guida di avvio rapido il riferimento verrà eliminato. Per altre informazioni su questo codice di errore, vedere Risolvere gli errori relativi alla risorsa non trovata.

Nel portale si può notare che la distribuzione viene visualizzata nella cronologia.

Screenshot della sezione della cronologia di distribuzione del portale di Azure che mostra una distribuzione non riuscita per un file Bicep.

È possibile aprire la voce nella cronologia di distribuzione per ottenere informazioni dettagliate sull'errore. L'errore esiste anche nel log attività.

Il file Bicep tenta di fare riferimento a una rete virtuale che non esiste nel gruppo di risorse. Eliminare il riferimento alla rete virtuale esistente per correggere l'errore.

@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

È possibile distribuire il file Bicep senza errori.

Pulire le risorse

Quando le risorse di Azure non sono più necessarie, eliminare il gruppo di risorse. È possibile eliminare il gruppo di risorse da Cloud Shell o dal portale.

az group delete --name troubleshootRG

Per eliminare il gruppo di risorse dal portale, effettuare i passaggi riportati di seguito:

  1. Nel portale di Azure immettere Gruppi di risorse nella casella di ricerca.
  2. Nel campo Filtra per nome immettere il nome del gruppo di risorse.
  3. Selezionare il nome del gruppo di risorse.
  4. Selezionare Elimina gruppo di risorse.
  5. Per confermare l'eliminazione, immettere il nome del gruppo di risorse e selezionare Elimina.

Passaggi successivi

Grazie a questa guida di avvio rapido è stato possibile apprendere come risolvere gli errori nelle distribuzioni dei file Bicep.