Configurare l'ambiente Bicep
Bicep supporta un file di configurazione facoltativo denominato bicepconfig.json. In questo file è possibile aggiungere valori che personalizzano l'esperienza di sviluppo Bicep. Questo file viene unito al file di configurazione predefinito. Per altre informazioni, vedere Informazioni sul processo di unione. Per personalizzare una configurazione, creare un file di configurazione nella stessa directory o in una directory padre dei file Bicep. Se sono presenti più directory padre contenenti bicepconfig.json file, Bicep usa la configurazione da quella più vicina. Per altre informazioni, vedere Informazioni sul processo di risoluzione dei file.
Per configurare le impostazioni dell'estensione Bicep, vedere Estensione Visual Studio Code e Bicep.
Creare il file di configurazione in Visual Studio Code
Per creare il file di configurazione è possibile usare qualsiasi editor di testo.
Per creare un file bicepconfig.json in Visual Studio Code, aprire il riquadro comandi ([CTRL/CMD][MAIUSC]++P) e quindi selezionare Bicep: Crea file di configurazione Bicep. Per altre informazioni, vedere Creare un file di configurazione Bicep.
L'estensione Bicep per Visual Studio Code supporta IntelliSense per i file bicepconfig.json . Usare IntelliSense per individuare le proprietà e i valori disponibili.
Comprendere il processo merge
Il file bicepconfig.json viene sottoposto a un processo di unione in basso ricorsivo con il file di configurazione predefinito. Durante il processo di unione, Bicep esamina ciascun percorso in entrambe le configurazioni. Se un percorso non è presente nella configurazione predefinita, questo e il relativo valore associato vengono aggiunti nel risultato finale. Viceversa, se nella configurazione predefinita esiste un percorso con un valore diverso, il valore di bicepconfig.json ha la precedenza nel risultato unito.
Si consideri uno scenario in cui per impostazione predefinita la configurazione è definita come segue:
{
"cloud": {
...
"credentialPrecedence": [
"AzureCLI",
"AzurePowerShell"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
}
}
},
...
}
E il bicepconfig.json è definito come segue:
{
"cloud": {
"credentialPrecedence": [
"AzurePowerShell",
"AzureCLI"
]
},
"moduleAliases": {
"br": {
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
}
}
}
La configurazione unita risultante sarà:
{
"cloud": {
...
"credentialPrecedence": [
"AzurePowerShell",
"AzureCLI"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
},
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
}
},
...
}
Nell'esempio precedente il valore di cloud.credentialPrecedence
viene sostituito, mentre i valori di cloud.moduleAliases.ContosoRegistry
e cloud.moduleAliases.CoreModules
vengono accodati nella configurazione unita.
Informazioni sul processo di risoluzione file
Il file bicepconfig.json può essere inserito nella stessa directory o in una directory padre dei file Bicep. Se sono presenti più directory padre contenenti bicepconfig.json file, Bicep usa il file di configurazione da quello più vicino. Ad esempio, nella struttura di cartelle specificata in cui ogni cartella ha un file bicepconfig.json :
Se si compila main.bicep nella child
cartella , viene usato il file bicepconfig.json nella child
cartella . I file di configurazione nelle cartelle parent
e root
vengono ignorati. Se la cartella child
non contiene un file di configurazione, Bicep cerca una configurazione nella cartella parent
e quindi nella cartella root
. Se in nessuna delle cartelle non viene trovato un file di configurazione, Bicep usa per impostazione predefinita i valori predefiniti.
Nel contesto di un file Bicep che richiama più moduli, ogni modulo viene sottoposto a compilazione usando il bicepconfig.json più vicino. Il file Bicep principale viene quindi compilato con il relativo bicepconfig.json corrispondente. Nello scenario seguente, modA.bicep
viene compilato usando il bicepconfig.json che si trova nella A
cartella , modB.bicep
viene compilato con il bicepconfig.json nella B
cartella e infine main.bicep viene compilato usando il bicepconfig.json nella root
cartella .
In assenza di un file bicepconfig.json nelle A
cartelle e , tutti e B
tre i file Bicep vengono compilati usando il bicepconfig.json presente nella root
cartella . Se bicepconfig.json non è presente in alcuna cartella, per impostazione predefinita la compilazione usa i valori predefiniti.
Configurare i moduli Bicep
Quando si lavora con i moduli, è possibile aggiungere alias per i percorsi dei moduli. Gli alias semplificano il file Bicep perché consentono di non ripetere percorsi complessi. Inoltre è possibile configurare il profilo cloud e la precedenza delle credenziali per l'autenticazione in Azure dall'interfaccia della riga di comando di Bicep e da Visual Studio Code. Le credenziali sono usate per pubblicare i moduli nei registri e per ripristinare i moduli esterni nella cache locale, quando si usa la funzione di inserimento della risorsa. Per altre informazioni, vedere Aggiungere le impostazioni del modulo a config Bicep.
Configurare le regole Linter
Il linter Bicep controlla i file Bicep per individuare errori di sintassi e violazioni delle procedure consigliate. È possibile modificare un file bicepconfig.json per eseguire l'override delle impostazioni predefinite per la convalida di un file Bicep. Per altre informazioni, vedere Aggiungere impostazioni linter a config. Bicep.
Abilitare le funzionalità sperimentali
È possibile abilitare le funzionalità sperimentali aggiungendo la sezione seguente al file di bicepconfig.json . L'uso di funzionalità sperimentali abilita automaticamente la generazione di codice della versione 2.0 del linguaggio.
Ecco un esempio di abilitazione delle funzionalità 'asserzioni' e 'testFramework'.
{
"experimentalFeaturesEnabled": {
"assertions": true,
"testFramework": true
}
}
Per altre informazioni sulle funzionalità sperimentali di Bicep, vedere Funzionalità sperimentali.
Passaggi successivi
- Informazioni su come aggiungere le impostazioni del modulo e le impostazioni linter nel file di configurazione Bicep.
- Informazioni sul linter Bicep.