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

Pokud chcete nakonfigurovat nastavení rozšíření Bicep, přečtěte si téma Visual Studio 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 bicepconfig.json v editoru 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 v editoru Visual Studio Code

Rozšíření Bicep pro Visual Studio Code podporuje Technologii IntelliSense pro bicepconfig.json soubory. Pomocí technologie IntelliSense můžete zjišťovat dostupné vlastnosti a hodnoty.

Snímek obrazovky IntelliSense s podporou konfigurace souboru _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á hodnota z bicepconfig.json přednost ve sloučeném výsledku.

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 bicepconfig.json je 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 hodnoty 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 souboru _bicepconfig.json_ nalezeného ve více nadřazených složkách

Pokud zkompilujete main.bicep ve child složce, použije se bicepconfig.json 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 konfigurační soubor nenajde v žádné ze složek, použije bicep výchozí hodnoty.

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

Diagram znázorňující soubor _bicepconfig.json_ nalezený ve více nadřazených složkách se scénářem modulu

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

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. Můžete upravit soubor bicepconfig.json tak, aby přepsaly výchozí nastavení způsobu ověření souboru Bicep. 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 souboru bicepconfig.json . 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
  }
}

Další informace o experimentálních funkcích Bicep najdete v tématu Experimentální funkce .

Další kroky

  • Zjistěte, jak do konfiguračního souboru Bicep přidat nastavení modulu a nastavení linteru.
  • Přečtěte si informace o linteru Bicep.