Uw Bicep-omgeving configureren
Bicep ondersteunt een optioneel configuratiebestand met de naam bicepconfig.json
. In dit bestand kunt u waarden toevoegen die uw Bicep-ontwikkelervaring aanpassen. Dit bestand wordt samengevoegd met het standaardconfiguratiebestand. Zie Het samenvoegproces begrijpen voor meer informatie. Als u de configuratie wilt aanpassen, maakt u een configuratiebestand in dezelfde map of een bovenliggende map van uw Bicep-bestanden. Als er meerdere bovenliggende mappen met bestanden zijn bicepconfig.json
, gebruikt Bicep de configuratie van de dichtstbijzijnde map. Zie Inzicht in het bestandsomzettingsproces voor meer informatie.
Zie VS Code en Bicep-extensie om bicep-extensie te configureren.
Het configuratiebestand maken in Visual Studio Code
U kunt elke teksteditor gebruiken om het configuratiebestand te maken.
Als u een bicepconfig.json
bestand wilt maken in Visual Studio Code, opent u het opdrachtenpalet ([CTRL/CMD]+[SHIFT]+P) en selecteert u Vervolgens Bicep: Bicep-configuratiebestand maken. Zie Bicep-configuratiebestand maken voor meer informatie.
De Bicep-extensie voor Visual Studio Code ondersteunt intellisense voor uw bicepconfig.json
bestand. Gebruik de intellisense om beschikbare eigenschappen en waarden te detecteren.
Het samenvoegproces begrijpen
Het bicepconfig.json
bestand ondergaat een recursief samenvoegingsproces met het standaardconfiguratiebestand. Tijdens het samenvoegen onderzoekt Bicep elk pad in beide configuraties. Als een pad niet aanwezig is in de standaardconfiguratie, worden het pad en de bijbehorende waarde toegevoegd in het uiteindelijke resultaat. Als er echter een pad bestaat in de standaardconfiguratie met een andere waarde, heeft de waarde bicepconfig.json
voorrang in het samengevoegde resultaat.
Overweeg een scenario waarin de standaardconfiguratie als volgt wordt gedefinieerd:
{
"cloud": {
...
"credentialPrecedence": [
"AzureCLI",
"AzurePowerShell"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
}
}
},
...
}
En de bicepconfig.json
definitie is als volgt:
{
"cloud": {
"credentialPrecedence": [
"AzurePowerShell",
"AzureCLI"
]
},
"moduleAliases": {
"br": {
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
}
}
}
De resulterende samengevoegde configuratie is:
{
"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"
}
}
},
...
}
In het voorgaande voorbeeld wordt de waarde vervangen cloud.credentialPrecedence
, terwijl de waarde van cloud.moduleAliases.ContosoRegistry
en cloud.moduleAliases.CoreModules
worden toegevoegd aan de samengevoegde configuratie.
Inzicht in het proces voor bestandsomzetting
Het bicepconfig.json
bestand kan in dezelfde map of in een bovenliggende map van uw Bicep-bestanden worden geplaatst. Als er meerdere bovenliggende mappen met bestanden zijn bicepconfig.json
, gebruikt Bicep het configuratiebestand van het dichtstbijzijnde bestand. Bijvoorbeeld in de opgegeven mapstructuur waarin elke map een bicepconfig.json
bestand heeft:
Als u compileert main.bicep
in de child
map, wordt het bicepconfig.json
bestand in de child
map gebruikt. De configuratiebestanden in de parent
map en de root
map worden genegeerd. Als de child
map geen configuratiebestand bevat, zoekt Bicep naar een configuratie in de parent
map en vervolgens naar de root
map. Als er geen configuratiebestand wordt gevonden in een van de mappen, wordt bicep standaard ingesteld op het gebruik van de standaardwaarden.
In de context van een Bicep-bestand dat meerdere modules aanroept, ondergaat elke module compilatie met behulp van het dichtstbijzijnde bicepconfig.json
. Vervolgens wordt het belangrijkste Bicep-bestand gecompileerd met de bijbehorende bicepconfig.json
. In het volgende scenario wordt modA.bicep
gecompileerd met behulp van de bicepconfig.json
map die zich in de A
map bevindt, modB.bicep
wordt gecompileerd met de bicepconfig.json
B
map en ten slotte main.bicep
wordt gecompileerd met behulp van de bicepconfig.json
root
map.
Bij afwezigheid van een bicepconfig.json
bestand in de A
map en B
mappen worden alle drie Bicep-bestanden gecompileerd met behulp van de bicepconfig.json
gevonden in de root
map. Als bicepconfig.json
deze niet aanwezig is in een van de mappen, wordt het compilatieproces standaard ingesteld op het gebruik van de standaardwaarden.
Bicep-modules configureren
Wanneer u met modules werkt, kunt u aliassen voor modulepaden toevoegen. Deze aliassen vereenvoudigen uw Bicep-bestand omdat u geen ingewikkelde paden hoeft te herhalen. U kunt ook cloudprofiel en referentieprioriteit configureren voor verificatie bij Azure vanuit Bicep CLI en Visual Studio Code. De referenties worden gebruikt om modules te publiceren naar registers en om externe modules te herstellen naar de lokale cache wanneer u de resourcefunctie invoegen gebruikt. Zie Module-instellingen toevoegen aan Bicep-configuratie voor meer informatie.
Linter-regels configureren
De Bicep linter controleert Bicep-bestanden op syntaxisfouten en schendingen van best practice. U kunt de standaardinstellingen voor de Bicep-bestandsvalidatie overschrijven door deze te bicepconfig.json
wijzigen. Zie Linter-instellingen toevoegen aan Bicep-configuratie voor meer informatie.
Experimentele functies inschakelen
U kunt experimentele functies inschakelen door de volgende sectie toe te voegen aan uw bicepconfig.json
bestand. Als u experimentele functies gebruikt, wordt taalversie 2.0 automatisch gegenereerd.
Hier volgt een voorbeeld van het inschakelen van functies 'asserties' en 'testFramework'.
{
"experimentalFeaturesEnabled": {
"assertions": true,
"testFramework": true
}
}
Zie Experimentele functies voor meer informatie over de huidige set experimentele functies.