Поделиться через


Настройка среды Bicep

Bicep поддерживает необязательный файл конфигурации с именем bicepconfig.json. В этом файле можно добавить значения, настраивающие процесс разработки Bicep. Этот файл объединяется с файлом конфигурации по умолчанию. Дополнительные сведения см. в разделе "Общие сведения о процессе слияния". Чтобы настроить конфигурацию, создайте файл конфигурации в том же каталоге или родительском каталоге файлов Bicep. Если есть несколько родительских каталогов, содержащих файлы bicepconfig.json , Bicep использует конфигурацию из ближайшей. Дополнительные сведения см. в разделе "Общие сведения о процессе разрешения файлов".

Сведения о настройке параметров расширения Bicep см. в расширении Visual Studio Code и Bicep.

Создание файла конфигурации в Visual Studio Code

Для создания файла конфигурации можно использовать любой текстовый редактор.

Чтобы создать файл bicepconfig.json в Visual Studio Code, откройте палитру команд ([CTRL/CMD]+[SHIFT]+P), а затем выберите Bicep: Создать файл конфигурации Bicep. Дополнительные сведения см. в разделе "Создание файла конфигурации Bicep".

Снимок экрана: создание файла конфигурации Bicep в Visual Studio Code.

Расширение Bicep для Visual Studio Code поддерживает IntelliSense для bicepconfig.json файлов. Используйте IntelliSense для обнаружения доступных свойств и значений.

Снимок экрана: IntelliSense, поддерживающий конфигурацию файла _bicepconfig.json_.

Общие сведения о процессе слияния

Файл bicepconfig.json проходит рекурсивный процесс объединения внизу с файлом конфигурации по умолчанию. Во время процесса объединения Bicep проверяет каждый путь в обеих конфигурациях. Если путь отсутствует в конфигурации по умолчанию, путь и его связанное значение добавляются в окончательный результат. И наоборот, если путь существует в конфигурации по умолчанию с другим значением, значение из bicepconfig.json имеет приоритет в объединенном результате.

Рассмотрим сценарий, в котором конфигурация по умолчанию определена следующим образом:

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

И bicepconfig.json определяется следующим образом:

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

Результирующая объединенная конфигурация будет:

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

В предыдущем примере значение cloud.credentialPrecedence заменяется, а значения cloud.moduleAliases.ContosoRegistry и cloud.moduleAliases.CoreModules добавляются в объединенную конфигурацию.

Общие сведения о процессе разрешения файлов

Файл bicepconfig.json можно поместить в тот же каталог или родительский каталог файлов Bicep. Если есть несколько родительских каталогов, содержащих файлы bicepconfig.json , Bicep использует файл конфигурации из ближайшего. Например, в данной структуре папок, в которой каждая папка имеет файл bicepconfig.json :

Схема, показывающая разрешение файла _bicepconfig.json_, найденного в нескольких родительских папках.

При компиляции main.bicep в папке child используется файл bicepconfig.json в папкеchild. Файлы конфигурации в папке parent и root папке игнорируются. child Если папка не содержит файл конфигурации, Bicep ищет конфигурацию в папкеparent, а затем папкуroot. Если файл конфигурации не найден в папках, Bicep по умолчанию использует значения по умолчанию.

В контексте файла Bicep, вызывающего несколько модулей, каждый модуль проходит компиляцию с помощью ближайшей bicepconfig.json. Затем основной файл Bicep компилируется с соответствующими bicepconfig.json. В следующем сценарии modA.bicep компилируется с помощью bicepconfig.json, расположенной в A папке, modB.bicep компилируется с bicepconfig.json в B папке и, наконец, main.bicep компилируется с помощью bicepconfig.json в папкеroot.

Схема, показывающая файл _bicepconfig.json_, найденный в нескольких родительских папках с сценарием модуля.

В отсутствие файла bicepconfig.json в A папке и B папок все три файла Bicep компилируются с помощью bicepconfig.json, найденных в папкеroot. Если bicepconfig.json отсутствует ни в одной из папок, компиляция по умолчанию использует значения по умолчанию.

Настройка модулей Bicep

При работе с модулями можно добавлять псевдонимы для путей модуля. Эти псевдонимы упрощают работу с файлом Bicep, так как вам не нужно повторять сложные пути. Вы также можете настроить приоритет облачных профилей и учетных данных для проверки подлинности в Azure из интерфейса командной строки Bicep и Visual Studio Code. Учетные данные используются для публикации модулей в реестрах и для восстановления внешних модулей в локальном кэше при использовании функции вставки ресурсов. Дополнительные сведения см. в разделе Добавление параметров модуля в конфигурацию Bicep.

Настройка правил Linter

Анализатор кода Bicep проверяет файлы Bicep на наличие синтаксических ошибок и нарушений рекомендаций. Вы можете изменить файл bicepconfig.json , чтобы переопределить параметры по умолчанию для проверки файла Bicep. Дополнительные сведения см. в разделе Добавление параметров анализатора кода в конфигурацию Bicep.

Включение экспериментальных функций

Экспериментальные функции можно включить, добавив следующий раздел в файл bicepconfig.json . Использование экспериментальных функций автоматически включает создание кода версии 2.0 .

Ниже приведен пример включения функций "утверждения" и "testFramework".

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

Дополнительные сведения о экспериментальных функциях Bicep см. в разделе "Экспериментальные функции ".

Следующие шаги