Sdílet prostřednictvím


Konfigurace prostředí Bicep

Bicep podporuje volitelný konfigurační soubor s názvem bicepconfig.json. V tomto souboru můžete přidat hodnoty, které přizpůsobí vývojové prostředí Bicep. Tento soubor se sloučí s výchozím konfiguračním souborem. Další informace najdete v tématu Vysvětlení procesu sloučení. Chcete-li přizpůsobit konfiguraci, vytvořte konfigurační soubor ve stejném adresáři nebo nadřazený adresář souborů Bicep. Pokud obsahuje více nadřazených adresářů obsahujících bicepconfig.json soubory, Použije Bicep konfiguraci z nejbližšího adresáře. Další informace najdete v tématu Vysvětlení procesu řešení souborů.

Informace o konfiguraci nastavení rozšíření Bicep najdete v tématu VS Code a rozšíření Bicep.

Vytvoření konfiguračního souboru v editoru Visual Studio Code

Konfigurační soubor můžete vytvořit pomocí libovolného textového editoru.

Pokud chcete vytvořit soubor v editoru bicepconfig.json Visual Studio Code, otevřete paletu příkazů ([CTRL/CMD]+[SHIFT]+P) a pak vyberte Bicep: Vytvořit konfigurační soubor Bicep. Další informace najdete v tématu Vytvoření konfiguračního souboru Bicep.

Snímek obrazovky s  postupem vytvoření konfiguračního souboru Bicep ve VS Code

Rozšíření Bicep pro Visual Studio Code podporuje intellisense pro váš bicepconfig.json soubor. Pomocí intellisense můžete zjistit dostupné vlastnosti a hodnoty.

Snímek obrazovky s podporou intellisense při konfiguraci bicepconfig.json

Vysvětlení procesu sloučení

Soubor bicepconfig.json prochází rekurzivním procesem sloučení dolů s výchozím konfiguračním souborem. Během procesu sloučení prozkoumá Bicep každou cestu v obou konfiguracích. Pokud cesta není ve výchozí konfiguraci, cesta a její přidružená hodnota se přidají do konečného výsledku. Naopak pokud cesta existuje ve výchozí konfiguraci s jinou hodnotou, má tato hodnota bicepconfig.json přednost před sloučeným výsledkem.

Představte si scénář, ve kterém je výchozí konfigurace definována takto:

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

A je bicepconfig.json definován takto:

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

Výsledná sloučená konfigurace by byla:

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

V předchozím příkladu je hodnota cloud.credentialPrecedence nahrazena, zatímco hodnota cloud.moduleAliases.ContosoRegistry a cloud.moduleAliases.CoreModules jsou připojeny ve sloučené konfiguraci.

Vysvětlení procesu řešení souborů

Soubor bicepconfig.json lze umístit do stejného adresáře nebo nadřazeného adresáře vašich souborů Bicep. Pokud obsahuje více nadřazených adresářů obsahujících bicepconfig.json soubory, použije Bicep konfigurační soubor z nejbližšího adresáře. Například v dané struktuře složek, kde má každá složka bicepconfig.json soubor:

Diagram znázorňující překlad bicepconfig.json nalezených ve více nadřazených složkách

Pokud soubor ve child složce zkompilujetemain.bicep, bicepconfig.json použije se soubor ve child složce. Konfigurační soubory ve parent složce a root složka se ignorují. child Pokud složka neobsahuje konfigurační soubor, Bicep vyhledá konfiguraci ve parent složce a pak složkuroot. Pokud se v žádné z těchto složek nenajde žádný konfigurační soubor, použije bicep výchozí hodnoty.

V kontextu souboru Bicep vyvolání více modulů prochází každý modul kompilací pomocí nejbližší bicepconfig.json. Pak se hlavní soubor Bicep zkompiluje s odpovídajícím bicepconfig.jsonsouborem . V následujícím scénáři je modA.bicep zkompilován pomocí bicepconfig.json umístění ve A složce, modB.bicep je zkompilován se bicepconfig.json B složkou a nakonec je main.bicep zkompilován pomocí bicepconfig.json složky.root

Diagram znázorňující řešení bicepconfig.json nalezené ve více nadřazených složkách ve scénáři modulu

Pokud soubor v souborech A a B složkách chybíbicepconfig.json, všechny tři soubory Bicep se kompilují pomocí nalezené bicepconfig.json root ve složce. Pokud bicepconfig.json v žádné z složek není, proces kompilace použije výchozí hodnoty.

Konfigurace modulů Bicep

Při práci s moduly můžete přidat aliasy pro cesty k modulům. Tyto aliasy zjednodušují váš soubor Bicep, protože nemusíte opakovat složité cesty. Můžete také nakonfigurovat prioritu cloudového profilu a přihlašovacích údajů pro ověřování v Azure z rozhraní příkazového řádku Bicep a editoru Visual Studio Code. Přihlašovací údaje slouží k publikování modulů do registrů a k obnovení externích modulů do místní mezipaměti při použití funkce vložení prostředku. Další informace najdete v tématu Přidání nastavení modulu do konfigurace Bicep.

Konfigurace pravidel Linter

Nástroj Bicep linter kontroluje chyby syntaxe a porušení osvědčených postupů v souborech Bicep. Výchozí nastavení pro ověření souboru Bicep můžete přepsat úpravou bicepconfig.json. Další informace naleznete v tématu Přidání nastavení linter do konfigurace Bicep.

Povolení experimentálních funkcí

Experimentální funkce můžete povolit přidáním následující části do bicepconfig.json souboru. Použití experimentálních funkcí automaticky umožňuje generování kódu verze 2.0 jazyka.

Tady je příklad povolení funkcí kontrolních výrazů a testFramework.

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

Informace o aktuální sadě experimentálních funkcí naleznete v tématu Experimentální funkce.

Další kroky