Che cos'è Bicep?
Ora che il team ha appreso il funzionamento di Azure Resource Manager, si decide di usare i modelli ARM per il provisioning delle risorse. Si apprende che è possibile scrivere i modelli ARM in due modi diversi: usando JSON e usando Bicep. Si vogliono avere altre informazioni sui modelli Bicep in modo da poter prendere una decisione informata riguardo al linguaggio da usare.
In questa unità verranno illustrati il linguaggio del modello Bicep e i vantaggi che offre per la creazione di modelli.
Linguaggio Bicep
Bicep è un linguaggio del modello di Resource Manager usato per distribuire in modo dichiarativo le risorse di Azure. Bicep è progettato per uno scenario o un dominio specifico, che lo rende un linguaggio specifico del dominio. Bicep non è destinato all'uso come linguaggio di programmazione standard per la scrittura di applicazioni. Bicep viene usato solo per creare modelli di Resource Manager. Bicep è progettato in modo che sia facile capirne e impararne l'uso, indipendentemente dall'esperienza con altri linguaggi di programmazione. Tutti i tipi di risorse, le versioni API e le proprietà sono validi nei modelli Bicep.
Nota
Se in precedenza è stato esaminato l'uso di modelli JSON, si può constatare che Bicep semplifica l'esperienza di creazione dei modelli. Offre una sintassi più facile da comprendere, un supporto migliore per la modularità e il codice riutilizzabile e una protezione ottimizzata dei tipi. La creazione di un modello ARM JSON richiede espressioni complesse e il risultato finale potrebbe essere molto dettagliato.
Vantaggi di Bicep
Bicep offre numerosi miglioramenti rispetto a JSON per la creazione dei modelli, tra cui:
Sintassi più semplice: Bicep offre una sintassi più semplice per la scrittura dei modelli. È possibile fare riferimento direttamente a parametri e variabili, senza usare funzioni complesse. L'interpolazione di stringhe viene usata al posto della concatenazione per combinare valori per i nomi e altri elementi. È possibile fare riferimento direttamente alle proprietà di una risorsa usando il suo nome simbolico anziché istruzioni di riferimento complesse. Questi miglioramenti della sintassi sono utili sia per la creazione che per la lettura dei modelli Bicep.
Moduli: è possibile suddividere le distribuzioni di modelli complessi in file di modulo più piccoli e fare riferimento a essi in un modello principale. Questi moduli offrono una gestione più semplice e una maggiore riusabilità. È anche possibile condividere moduli con il team.
Gestione automatica delle dipendenze: nella maggior parte dei casi, Bicep rileva automaticamente le dipendenze tra le risorse. Questo processo elimina parte del lavoro necessario per la creazione dei modelli.
Convalida dei tipi e IntelliSense: l'estensione Bicep per Visual Studio Code offre la convalida avanzata e IntelliSense per tutte le definizioni API dei tipi di risorse di Azure. Questa funzionalità consente di offrire un'esperienza di creazione più semplice.
Esaminare l'esempio seguente di un modello Bicep che definisce un account di archiviazione di Azure. Il modello genera automaticamente il nome dell'account di archiviazione. Dopo la distribuzione, l'ID risorsa viene restituito come output all'utente che esegue il modello.
param location string = resourceGroup().location
param namePrefix string = 'storage'
var storageAccountName = '${namePrefix}${uniqueString(resourceGroup().id)}'
var storageAccountSku = 'Standard_RAGRS'
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
kind: 'StorageV2'
sku: {
name: storageAccountSku
}
properties: {
accessTier: 'Hot'
supportsHttpsTrafficOnly: true
}
}
output storageAccountId string = storageAccount.id