Konfigurowanie środowiska Bicep

Bicep obsługuje opcjonalny plik konfiguracji o nazwie bicepconfig.json. W tym pliku możesz dodać wartości, które dostosują środowisko deweloperskie Bicep. Ten plik jest scalony z domyślnym plikiem konfiguracji. Aby uzyskać więcej informacji, zobacz Omówienie procesu scalania. Aby dostosować konfigurację, utwórz plik konfiguracji w tym samym katalogu lub katalogu nadrzędnym plików Bicep. Jeśli istnieje wiele katalogów nadrzędnych zawierających bicepconfig.json pliki, Bicep używa konfiguracji z najbliższej. Aby uzyskać więcej informacji, zobacz Omówienie procesu rozpoznawania plików.

Aby skonfigurować ustawienia rozszerzenia Bicep, zobacz Rozszerzenie VS Code i Bicep.

Tworzenie pliku konfiguracji w programie Visual Studio Code

Do utworzenia pliku konfiguracji można użyć dowolnego edytora tekstów.

Aby utworzyć plik w programie Visual Studio Code, otwórz paletę bicepconfig.json poleceń ([CTRL/CMD]+[SHIFT]+P), a następnie wybierz pozycję Bicep: Utwórz plik konfiguracji Bicep. Aby uzyskać więcej informacji, zobacz Create Bicep configuration file (Tworzenie pliku konfiguracji Bicep).

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

Rozszerzenie Bicep dla programu Visual Studio Code obsługuje funkcję IntelliSense dla pliku bicepconfig.json . Użyj funkcji IntelliSense, aby odnaleźć dostępne właściwości i wartości.

Screenshot of the intellisense support in configuring bicepconfig.json.

Omówienie procesu scalania

Plik bicepconfig.json przechodzi cyklicznego procesu scalania do dołu z domyślnym plikiem konfiguracji. Podczas procesu scalania Bicep analizuje każdą ścieżkę w obu konfiguracjach. Jeśli ścieżka nie jest obecna w konfiguracji domyślnej, ścieżka i skojarzona z nią wartość zostaną dodane w końcowym wyniku. Z drugiej strony, jeśli ścieżka istnieje w konfiguracji domyślnej z inną wartością, wartość z ma bicepconfig.json pierwszeństwo w scalanym wyniku.

Rozważmy scenariusz, w którym konfiguracja domyślna jest zdefiniowana w następujący sposób:

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

Element jest definiowany bicepconfig.json w następujący sposób:

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

Wynikowa scalona konfiguracja będzie:

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

W poprzednim przykładzie wartość cloud.credentialPrecedence jest zastępowana, a wartość cloud.moduleAliases.ContosoRegistry elementu i cloud.moduleAliases.CoreModules jest dołączana do scalonej konfiguracji.

Omówienie procesu rozpoznawania plików

Plik bicepconfig.json można umieścić w tym samym katalogu lub katalogu nadrzędnym plików Bicep. Jeśli istnieje wiele katalogów nadrzędnych zawierających bicepconfig.json pliki, Bicep używa pliku konfiguracji z najbliższego. Na przykład w danej strukturze folderów, w której każdy folder ma bicepconfig.json plik:

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

Jeśli skompilujesz main.bicep plik w child folderze, bicepconfig.json zostanie użyty plik w folderze child . Pliki konfiguracji w folderze parent i root folderze są ignorowane. child Jeśli folder nie zawiera pliku konfiguracji, Bicep wyszukuje konfigurację w folderzeparent, a następnie root folder. Jeśli żaden plik konfiguracji nie zostanie znaleziony w żadnym z folderów, Bicep domyślnie używa wartości domyślnych.

W kontekście pliku Bicep wywołującego wiele modułów każdy moduł przechodzi kompilację przy użyciu najbliższego bicepconfig.jsonelementu . Następnie główny plik Bicep jest kompilowany z odpowiadającym mu bicepconfig.jsonelementem . W poniższym scenariuszu modA.bicep kompilowany jest przy użyciu folderu znajdującego bicepconfig.json się w A folderze, modB.bicep jest kompilowany z bicepconfig.json folderem w B folderze, a na koniec main.bicep jest kompilowany przy użyciu bicepconfig.json elementu w folderze root .

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

W przypadku braku pliku w A folderach i B wszystkie trzy pliki Bicep są kompilowane przy użyciu bicepconfig.json pliku znalezionego w folderze root .bicepconfig.json Jeśli bicepconfig.json nie ma go w żadnym z folderów, proces kompilacji domyślnie używa wartości domyślnych.

Konfigurowanie modułów Bicep

Podczas pracy z modułami można dodać aliasy dla ścieżek modułów. Te aliasy upraszczają plik Bicep, ponieważ nie trzeba powtarzać skomplikowanych ścieżek. Możesz również skonfigurować pierwszeństwo profilu chmury i poświadczeń na potrzeby uwierzytelniania na platformie Azure z poziomu interfejsu wiersza polecenia Bicep i programu Visual Studio Code. Poświadczenia są używane do publikowania modułów w rejestrach i przywracania modułów zewnętrznych do lokalnej pamięci podręcznej podczas korzystania z funkcji wstawiania zasobów. Aby uzyskać więcej informacji, zobacz Dodawanie ustawień modułu do konfiguracji Bicep.

Konfigurowanie reguł linter

Linter Bicep sprawdza pliki Bicep pod kątem błędów składni i naruszeń najlepszych rozwiązań. Możesz zastąpić ustawienia domyślne weryfikacji pliku Bicep, modyfikując element bicepconfig.json. Aby uzyskać więcej informacji, zobacz Dodawanie ustawień linter do konfiguracji Bicep.

Włączanie funkcji eksperymentalnych

Funkcje eksperymentalne można włączyć, dodając następującą sekcję do bicepconfig.json pliku.

Oto przykład włączania funkcji "compileTimeImports" i "userDefinedFunctions".

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

Aby uzyskać informacje na temat bieżącego zestawu funkcji eksperymentalnych, zobacz Funkcje eksperymentalne.

Następne kroki