Dela via


Konfigurera din Bicep-miljö

Bicep stöder en valfri konfigurationsfil med namnet bicepconfig.json. I den här filen kan du lägga till värden som anpassar Bicep-utvecklingsupplevelsen. Den här filen sammanfogas med standardkonfigurationsfilen. Mer information finns i Förstå sammanslagningsprocessen. Om du vill anpassa en konfiguration skapar du en konfigurationsfil i samma katalog eller en överordnad katalog för dina Bicep-filer. Om det finns flera överordnade kataloger som innehåller bicepconfig.json filer använder Bicep konfigurationen från närmaste. Mer information finns i Förstå filmatchningsprocessen.

Information om hur du konfigurerar Bicep-tilläggsinställningar finns i Visual Studio Code och Bicep-tillägget.

Skapa konfigurationsfilen i Visual Studio Code

Du kan använda valfri textredigerare för att skapa konfigurationsfilen.

Om du vill skapa en bicepconfig.json fil i Visual Studio Code öppnar du kommandopaletten ([CTRL/CMD]+[SKIFT]+P) och väljer sedan Bicep: Skapa Bicep-konfigurationsfil. Mer information finns i Skapa Bicep-konfigurationsfil.

Skärmbild av hur du skapar Bicep-konfigurationsfilen i Visual Studio Code.

Bicep-tillägget för Visual Studio Code stöder IntelliSense för bicepconfig.json filer. Använd IntelliSense för att identifiera tillgängliga egenskaper och värden.

Skärmbild av IntelliSense som stöder en _bicepconfig.json_ filkonfiguration.

Förstå sammanslagningsprocessen

Filen bicepconfig.json genomgår en rekursiv sammanslagningsprocess nedifrån och upp med standardkonfigurationsfilen. Under sammanslagningsprocessen undersöker Bicep varje sökväg i båda konfigurationerna. Om det inte finns någon sökväg i standardkonfigurationen läggs sökvägen och dess associerade värde till i slutresultatet. Om det finns en sökväg i standardkonfigurationen med ett annat värde har värdet från bicepconfig.json företräde i det sammanfogade resultatet.

Tänk dig ett scenario där standardkonfigurationen definieras på följande sätt:

{
  "cloud": {
    ...
    "credentialPrecedence": [
      "AzureCLI",
      "AzurePowerShell"
    ]
  },
  "moduleAliases": {
    "ts": {},
    "br": {
      "public": {
        "registry": "mcr.microsoft.com",
        "modulePath": "bicep"
      }
    }
  },
  ...
}

Och bicepconfig.json definieras på följande sätt:

{
  "cloud": {
    "credentialPrecedence": [
      "AzurePowerShell",
      "AzureCLI"
    ]
  },
  "moduleAliases": {
    "br": {
      "ContosoRegistry": {
        "registry": "contosoregistry.azurecr.io"
      },
      "CoreModules": {
        "registry": "contosoregistry.azurecr.io",
        "modulePath": "bicep/modules/core"
      }
    }
  }
}

Den resulterande sammanslagna konfigurationen skulle vara:

{
  "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"
      }
    }
  },
  ...
}

I föregående exempel ersätts värdet cloud.credentialPrecedence för medan värdena cloud.moduleAliases.ContosoRegistry för och cloud.moduleAliases.CoreModules läggs till i den sammanfogade konfigurationen.

Förstå filmatchningsprocessen

Den bicepconfig.json filen kan placeras i samma katalog eller i en överordnad katalog för dina Bicep-filer. Om det finns flera överordnade kataloger som innehåller bicepconfig.json filer använder Bicep konfigurationsfilen från närmaste. Till exempel i den angivna mappstrukturen där varje mapp har en bicepconfig.json fil:

Ett diagram som visar hur du löser en _bicepconfig.json_-fil som finns i flera överordnade mappar.

Om du kompilerar main.bicep i child mappen används den bicepconfig.json filen i child mappen. Konfigurationsfilerna parent i mappen och root mappen ignoreras. child Om mappen inte innehåller en konfigurationsfil söker Bicep efter en konfiguration i parent mappen och sedan mappenroot. Om en konfigurationsfil inte hittas i någon av mapparna använder Bicep standardvärdena.

I samband med en Bicep-fil som anropar flera moduler, genomgår varje modul kompilering med hjälp av närmaste bicepconfig.json. Sedan kompileras huvudfilen för Bicep med motsvarande bicepconfig.json. I följande scenario modA.bicep kompileras med hjälp av bicepconfig.json som finns i A mappen, modB.bicep kompileras med bicepconfig.json i B mappen och slutligen kompileras main.bicep med hjälp av bicepconfig.json i root mappen.

Ett diagram som visar _bicepconfig.json_-filen som finns i flera överordnade mappar med modulscenariot.

I avsaknad av en bicepconfig.json fil i mapparna A och B kompileras alla tre Bicep-filerna med hjälp av bicepconfig.json som finns i root mappen. Om bicepconfig.json inte finns i någon av mapparna används standardvärdena för kompilering.

Konfigurera Bicep-moduler

När du arbetar med moduler kan du lägga till alias för modulsökvägar. Dessa alias förenklar Bicep-filen eftersom du inte behöver upprepa komplicerade sökvägar. Du kan också konfigurera molnprofil och autentiseringsprioritet för autentisering till Azure från Bicep CLI och Visual Studio Code. Autentiseringsuppgifterna används för att publicera moduler till register och återställa externa moduler till den lokala cachen när du använder funktionen infoga resurs. Mer information finns i Lägga till modulinställningar i Bicep-konfigurationen.

Konfigurera Linter-regler

Bicep-lintern kontrollerar Bicep-filer efter syntaxfel och överträdelser av bästa praxis. Du kan ändra en bicepconfig.json fil för att åsidosätta standardinställningarna för hur en Bicep-fil verifieras. Mer information finns i Lägga till linterinställningar i Bicep-konfigurationen.

Aktivera experimentella funktioner

Du kan aktivera experimentella funktioner genom att lägga till följande avsnitt i din bicepconfig.json-fil . Om du använder experimentella funktioner aktiveras automatiskt språkversion 2.0-kodgenerering .

Här är ett exempel på hur du aktiverar funktionerna "försäkran" och "testFramework".

{
  "experimentalFeaturesEnabled": {
    "assertions": true,
    "testFramework": true
  }
}

Mer information om Bicep-experimentella funktioner finns i Experimentella funktioner .

Nästa steg