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 een configuratie wilt aanpassen, maakt u een configuratiebestand in dezelfde map of een bovenliggende map van uw Bicep-bestanden. Als er meerdere bovenliggende mappen zijn met bicepconfig.json bestanden, gebruikt Bicep de configuratie van het dichtstbijzijnde bestand. Zie Inzicht in het bestandsomzettingsproces voor meer informatie.
Zie Visual Studio 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 bicepconfig.json bestanden. Gebruik 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 van 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 wordt als volgt gedefinieerd:
{
"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 waarden 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 zijn die bicepconfig.json bestanden bevatten, gebruikt Bicep het configuratiebestand van het dichtstbijzijnde bestand. Bijvoorbeeld in de opgegeven mapstructuur waarin elke map een bicepconfig.json bestand heeft:
Als u main.bicep compileert 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 een configuratiebestand niet 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 de 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 in de A
map, modB.bicep
wordt gecompileerd met de bicepconfig.json in de B
map en ten slotte wordt main.bicep gecompileerd met behulp van de bicepconfig.json in de root
map.
Bij afwezigheid van een bicepconfig.json bestand in de A
en B
mappen worden alle drie Bicep-bestanden gecompileerd met behulp van de bicepconfig.json gevonden in de root
map. Als bicepconfig.json niet aanwezig is in een van de mappen, wordt de compilatie 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 een bicepconfig.json bestand wijzigen om de standaardinstellingen te overschrijven voor hoe een Bicep-bestand wordt gevalideerd. 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 experimentele functies van Bicep.
Volgende stappen
- Meer informatie over het toevoegen van module-instellingen en linter-instellingen in het Bicep-configuratiebestand.
- Meer informatie over bicep linter.