Configurare l'ambiente Bicep
Bicep supporta un file di configurazione facoltativo denominato bicepconfig.json
. All'interno di 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 la 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 VS Code e Bicep.
Creare il file di configurazione in Visual Studio Code
È possibile usare qualsiasi editor di testo per creare il file di configurazione.
Per creare un bicepconfig.json
file 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 il bicepconfig.json
file. Usare intellisense per individuare le proprietà e i valori disponibili.
Comprendere il processo di unione
Il bicepconfig.json
file viene sottoposto a un processo di unione in basso ricorsivo con il file di configurazione predefinito. Durante il processo di unione, Bicep esamina ogni percorso in entrambe le configurazioni. Se un percorso non è presente nella configurazione predefinita, il percorso 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 la configurazione predefinita è definita come segue:
{
"cloud": {
...
"credentialPrecedence": [
"AzureCLI",
"AzurePowerShell"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
}
}
},
...
}
E viene 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 il valore di cloud.moduleAliases.ContosoRegistry
e cloud.moduleAliases.CoreModules
viene aggiunto nella configurazione unita.
Informazioni sul processo di risoluzione dei file
Il bicepconfig.json
file 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 bicepconfig.json
file:
Se si esegue la compilazione main.bicep
nella child
cartella , viene usato il bicepconfig.json
file nella child
cartella . I file di configurazione nella parent
cartella e nella root
cartella vengono ignorati. Se la child
cartella non contiene un file di configurazione, Bicep cerca una configurazione nella parent
cartella e quindi la root
cartella . Se non viene trovato alcun file di configurazione in una delle cartelle, Bicep usa per impostazione predefinita i valori predefiniti.
Nel contesto di un file Bicep che richiama più moduli, ogni modulo viene sottoposto alla compilazione usando il più bicepconfig.json
vicino . Il file Bicep principale viene quindi compilato con il corrispondente bicepconfig.json
. Nello scenario seguente, modA.bicep
viene compilato usando l'oggetto bicepconfig.json
che si trova nella A
cartella , modB.bicep
viene compilato con bicepconfig.json
nella B
cartella e infine main.bicep
viene compilato usando bicepconfig.json
nella root
cartella .
In assenza di un bicepconfig.json
file nelle A
cartelle e B
, tutti e tre i file Bicep vengono compilati usando trovato bicepconfig.json
nella root
cartella . Se bicepconfig.json
non è presente in alcuna cartella, per impostazione predefinita il processo di compilazione usa i valori predefiniti.
Configurare i moduli Bicep
Quando si lavora con i moduli, è possibile aggiungere alias per i percorsi dei moduli. Questi alias semplificano il file Bicep perché non è necessario ripetere percorsi complessi. È anche 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 vengono usate per pubblicare 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 Bicep config.
Configurare le regole Linter
Bicep linter controlla i file Bicep per individuare errori di sintassi e violazioni delle procedure consigliate. È possibile eseguire l'override delle impostazioni predefinite per la convalida del file Bicep modificando bicepconfig.json
. Per altre informazioni, vedere Aggiungere impostazioni linter a Bicep config.
Abilitare le funzionalità sperimentali
È possibile abilitare le funzionalità sperimentali aggiungendo la sezione seguente al bicepconfig.json
file.
Ecco un esempio di abilitazione delle funzionalità 'compileTimeImports' e 'userDefinedFunctions'.
{
"experimentalFeaturesEnabled": {
"compileTimeImports": true,
"userDefinedFunctions": true
}
}
Per informazioni sul set corrente di funzionalità sperimentali, vedere Funzionalità sperimentali.