Delen via


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.

Schermopname van het maken van een Bicep-configuratiebestand in Visual Studio Code.

De Bicep-extensie voor Visual Studio Code ondersteunt IntelliSense voor bicepconfig.json bestanden. Gebruik IntelliSense om beschikbare eigenschappen en waarden te detecteren.

Schermopname van IntelliSense die ondersteuning biedt voor een configuratie van een _bicepconfig.json_-bestand.

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:

Een diagram met het omzetten van een _bicepconfig.json_-bestand in meerdere bovenliggende mappen.

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.

Een diagram met het bestand _bicepconfig.json_ in meerdere bovenliggende mappen met het modulescenario.

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