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.

Screenshot of how to create Bicep configuration file in VS Code.

De Bicep-extensie voor Visual Studio Code ondersteunt intellisense voor uw bicepconfig.json bestand. Gebruik de intellisense om beschikbare eigenschappen en waarden te detecteren.

Screenshot of the intellisense support in configuring bicepconfig.json.

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:

A diagram showing resolving `bicepconfig.json` found in multiple parent folders.

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.jsonB map en ten slotte main.bicep wordt gecompileerd met behulp van de bicepconfig.jsonroot map.

A diagram showing resolving `bicepconfig.json` found in multiple parent folders with the module scenario.

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.jsonwijzigen. 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.

Hier volgt een voorbeeld van het inschakelen van functies compileTimeImports en userDefinedFunctions.

{
  "experimentalFeaturesEnabled": {
    "compileTimeImports": true,
    "userDefinedFunctions": true
  }
}

Zie Experimentele functies voor meer informatie over de huidige set experimentele functies.

Volgende stappen