Che cos'è Bicep?

Bicep è un linguaggio specifico di dominio (DSL) che usa la sintassi dichiarativa per distribuire le risorse di Azure. L'infrastruttura da distribuire in Azure viene definita in un file Bicep che viene quindi usato in tutto il ciclo di vita di sviluppo per distribuire ripetutamente l'infrastruttura. Le risorse vengono distribuite in modo coerente.

Bicep offre sintassi concisa, indipendenza dai tipi affidabile e supporto per il riutilizzo del codice. Bicep offre un'esperienza di creazione di prima classe per le soluzioni di infrastruttura come codice in Azure.

Vantaggi di Bicep

Bicep offre i vantaggi seguenti:

  • Supporto per tutti i tipi di risorse e versioni di API: Bicep supporta immediatamente tutte le versioni di anteprima e in disponibilità generale per i servizi di Azure. Non appena un provider di risorse introduce nuovi tipi di risorse e versioni di API, è possibile usarli nel file Bicep. Non è necessario attendere che gli strumenti vengano aggiornati prima di usare i nuovi servizi.

  • Sintassi semplice: rispetto al modello JSON equivalente, i file Bicep sono più concisi e più facili da leggere. Bicep non richiede alcuna conoscenza precedente dei linguaggi di programmazione. La sintassi Bicep è dichiarativa e specifica le risorse e le relative proprietà da distribuire.

    Gli esempi seguenti illustrano la differenza tra un file Bicep e il modello JSON equivalente. Entrambi gli esempi distribuiscono un account di archiviazione.

    param location string = resourceGroup().location
    param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
    
    resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

  • Esperienza di creazione: quando si usa l'estensione Bicep per VS Code per creare i file Bicep, si ottiene un'esperienza di creazione di prima classe. L'editor offre funzionalità avanzate di sicurezza dei tipi, intellisense e convalida della sintassi.

    Bicep file authoring example

    È anche possibile creare file Bicep in Visual Studio con l'estensione Bicep per Visual Studio.

  • Risultati ripetibili: è possibile distribuire ripetutamente l'infrastruttura nel corso del ciclo di vita dello sviluppo garantendo al contempo che le risorse vengano distribuite in uno stato coerente. I modelli sono idempotenti, il che significa che è possibile distribuire lo stesso file più volte e ottenere gli stessi tipi di risorse nel medesimo stato. È possibile sviluppare un file che rappresenta lo stato desiderato, invece di molti file separati per rappresentare gli aggiornamenti.

  • Orchestrazione: non è necessario preoccuparsi delle complessità delle operazioni di ordinamento. Resource Manager gestisce la distribuzione delle risorse interdipendenti, in modo che vengano create nell'ordine corretto. Quando possibile, Resource Manager distribuisce le risorse in parallelo, in modo che le distribuzioni terminino più velocemente rispetto alle distribuzioni seriali. Il modello si distribuisce tramite un comando invece che tramite più comandi imperativi.

    Bicep deployment comparison

  • Modularità: è possibile suddividere il codice Bicep in parti gestibili usando moduli. Il modulo distribuisce un set di risorse correlate. I moduli consentono di riutilizzare il codice e di semplificare lo sviluppo. Aggiungere il modulo a un file Bicep ogni volta che è necessario distribuire tali risorse.

  • Integrazione con i servizi di Azure: Bicep è integrato con i servizi di Azure, ad esempio Criteri di Azure, specifiche di modello e Blueprints.

  • Anteprima delle modifiche: è possibile usare l'operazione di simulazione per ottenere un'anteprima delle modifiche prima di distribuire il file Bicep. Con la simulazione, vengono visualizzate le risorse che verranno create, aggiornate o eliminate e le eventuali proprietà delle risorse che verranno modificate. L'operazione di simulazione controlla lo stato corrente dell'ambiente ed elimina la necessità di gestire lo stato.

  • Nessuno stato o file di stato da gestire: tutto lo stato viene archiviato in Azure. Gli utenti possono collaborare e avere la certezza che gli aggiornamenti vengano gestiti come previsto.

  • Nessun costo e open source: Bicep è completamente gratuito. Non è necessario pagare per le funzionalità Premium. È supportato anche dal supporto Tecnico Microsoft.

Operazioni preliminari

Per iniziare a usare Bicep:

  1. Installare gli strumenti. Vedere Configurare ambienti di sviluppo e distribuzione Bicep. In alternativa, è possibile usare il repository Devcontainer/Codespaces di VS Code per ottenere un ambiente di creazione preconfigurato.
  2. Completare la guida introduttiva e i moduli Learn per Bicep.

Per decompilare un modello di Resource Manager esistente in Bicep, vedere Decompilazione di JSON del modello di ARM in Bicep. È possibile usare Bicep Playground per visualizzare Bicep e JSON equivalente affiancato.

Per informazioni sulle risorse disponibili nel file Bicep, vedere Riferimento sulle risorse Bicep

Gli esempi Bicep sono disponibili nel repository GitHub Bicep

Informazioni sulla lingua

Bicep non è destinato a un linguaggio di programmazione generale per scrivere applicazioni. Un file Bicep dichiara le risorse di Azure e le proprietà delle risorse, senza scrivere una sequenza di comandi di programmazione per creare risorse.

Per tenere traccia dello stato del lavoro di Bicep, vedere il repository di progetti Bicep.

Per informazioni su Bicep, vedere il video seguente.

È possibile usare Bicep al posto di JSON per sviluppare modelli di Azure Resource Manager (modelli di ARM). Nella creazione di un modello di Resource Manager, la sintassi JSON può risultare troppo dettagliata e richiedere espressioni complesse. La sintassi Bicep riduce la complessità e migliora l'esperienza di sviluppo. Bicep è un'astrazione trasparente basata su JSON del modello di ARM e non perde alcuna delle funzionalità del modello JSON. Durante la distribuzione, l'interfaccia della riga di comando di Bicep converte un file Bicep in JSON del modello ARM.

I tipi di risorse, le versioni API e le proprietà validi in un modello di Resource Manager sono validi in un file Bicep.

Bicep offre una sintassi più semplice e più concisa rispetto al codice JSON equivalente. Non si usano espressioni [...] tra parentesi quadre. Si chiamano invece direttamente le funzioni e si ottengono valori da parametri e variabili. Si assegna a ogni risorsa distribuita un nome simbolico, che semplifica il riferimento a tale risorsa nel modello.

Per un confronto completo della sintassi, vedere Confronto tra JSON e Bicep per i modelli.

Bicep gestisce automaticamente le dipendenze tra le risorse. È possibile evitare di impostare dependsOn quando il nome simbolico di una risorsa viene usato in un'altra dichiarazione di risorsa.

La struttura del file Bicep è più flessibile rispetto al modello JSON. È possibile dichiarare parametri, variabili e output in qualsiasi punto del file. In JSON è necessario dichiarare tutti i parametri, le variabili e gli output nelle sezioni corrispondenti del modello.

Passaggi successivi

Guida di avvio rapido per iniziare.

Per risposte alle domande comuni, vedere Domande frequenti su Bicep.