Краткое руководство. Создание BICEP-файлов с помощью Visual Studio Code

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

Аналогичные возможности разработки также поддерживаются в Visual Studio. См. статью Краткое руководство. Создание файлов Bicep с помощью Visual Studio.

Предварительные требования

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Сведения о настройке среды для разработки Bicep см. в разделе Установка средств Bicep. После этого у вас будет Visual Studio Code и расширение Bicep. У вас также есть последняя версия Azure CLI или модуля Azure PowerShell.

Добавление фрагмента ресурсов

Запустите Visual Studio Code и создайте новый файл с именем main.bicep.

VS Code с расширением Bicep упрощает разработку, предоставляя предварительно определенные фрагменты. В этом кратком руководстве показано, как добавить фрагмент кода, который создает виртуальную сеть.

В файле main.bicep введите vnet. Выберите res-vnet из списка, а затем нажмите клавишу табуляции или ввода.

Добавление фрагмента для виртуальной сети

Совет

Если вы не видите эти параметры IntelliSense в VS Code, убедитесь, что вы установили расширение Bicep, как указано в разделе Предварительные требования. Если расширение установлено, подождите некоторое время после открытия файла Bicep. Обычно запуск происходит быстро, но пока он не выполнен, параметры IntelliSense будут недоступны. При запуске службы появляется уведомление в правом нижнем углу. Когда оно исчезнет, расширение должно работать.

Файл Bicep теперь содержит следующий код.

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'name'
  location: resourceGroup().location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

Этот фрагмент содержит все значения, требуемые для определения виртуальной сети. Однако этот код при необходимости можно изменить. Например, name не подходит для использования в качестве имени виртуальной сети. Измените значение свойства name на examplevnet.

name: 'examplevnet'

Вы можете развернуть этот файл Bicep, но перед развертыванием мы добавляем параметр и учетную запись хранения.

Добавление параметра

Теперь мы добавим параметр для имени учетной записи хранения. В начале файла добавьте следующее:

param storageName

При добавлении пробела послеstorageName обратите внимание, что IntelliSense предлагает типы данных, доступные для параметра. Выберите строковое значение.

Добавление строкового типа в параметр

У вас есть следующий параметр.:

param storageName string

Этот параметр работает нормально, однако в отношении учетных записей хранения предусматриваются ограничения по длине имени. Имя должно содержать не менее 3 и не более 24 символов. Эти требования можно указать, добавив декораторы в параметр.

Добавьте строку над параметром и введите @ . Отобразятся доступные декораторы. Обратите внимание, что декораторы доступны и для minLength, и для MaxLength.

Добавление декораторов в параметр

Добавьте оба декоратора и укажите ограничения по числу символов, как показано ниже.

@minLength(3)
@maxLength(24)
param storageName string

Можно также добавить описание параметра. Добавьте сведения, которые помогут пользователям, выполняющим развертывание файла Bicep, понять, какое значение необходимо указать.

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageName string

Теперь параметр готов к использованию.

Добавление ресурса

Вместо использования фрагмента для определения учетной записи хранения мы будем использовать IntelliSense для установки значений. IntelliSense упрощает этот шаг по сравнению с указанием значений вручную.

Чтобы определить ресурс, используйте ключевое слово resource. Под виртуальной сетью введите exampleStorage ресурса.

resource exampleStorage

exampleStorage — это символическое имя развертываемого ресурса. Вы можете использовать это имя, чтобы ссылаться на ресурс в других частях файла Bicep.

При добавлении пробела после символического имени отобразится список типов ресурсов. Продолжайте вводить текст storage, пока этот пункт не станет доступным для выбора в списке.

Выбор учетных записей хранения для типа ресурса

После выбора Microsoft.Storage/storageAccounts отобразятся доступные версии API. Выберите 2021-02-01.

Выбор версии API для типа ресурса

После одинарной кавычки, указанной для типа ресурса, добавьте = и пробел. Отобразятся параметры для добавления свойств в ресурс. Выберите обязательные свойства.

Добавление обязательных свойств

Этот параметр добавляет все свойства для типа ресурса, требуемые для его развертывания. После выбора этого параметра ваша учетная запись хранения будет иметь следующие свойства.

resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-02-01' = {
  name:
  location:
  sku: {
    name:
  }
  kind:

}

Вы почти у цели. Просто укажите значения для этих свойств.

В этом опять-таки поможет IntelliSense. Задайте для name значение storageName, которое представляет собой параметр, содержащий имя учетной записи хранения. Для location задайте значение 'eastus'. При добавлении имени и типа SKU IntelliSense предоставит допустимые параметры.

После завершения работы у вас будет следующее.

@minLength(3)
@maxLength(24)
param storageName string

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'examplevnet'
  location: resourceGroup().location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-02-01' = {
  name: storageName
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Дополнительные сведения о синтаксисе Bicep см. в структуре Bicep.

Визуализация ресурсов

Представление ресурсов можно просмотреть в файле.

В правом верхнем углу нажмите кнопку визуализатора, чтобы открыть визуализатор Bicep.

Визуализатор Bicep

Визуализатор отображает ресурсы, определенные в файле Bicep, вместе с информацией о зависимостях ресурса. Для двух ресурсов, определенных в этом кратком руководстве, не предусмотрена связь зависимости, поэтому соединитель между этими двумя ресурсами не отображается.

Развертывание BICEP-файла

  1. Щелкните правой кнопкой мыши файл Bicep в VSCode и выберите Развертывание файла Bicep.

    Снимок экрана с параметром

  2. В списке Выбор группы ресурсов вверху выберите Создать группу ресурсов.

  3. Введите exampleRG в качестве имени группы ресурсов и нажмите клавишу [ВВОД].

  4. Выберите расположение группы ресурсов и нажмите клавишу [ВВОД].

  5. В списке Выбор файла параметров выберите Нет.

    Снимок экрана со списком

  6. Введите уникальное имя учетной записи хранения и нажмите клавишу [ВВОД]. Если появляется сообщение об ошибке, в котором сказано, что учетная запись хранения уже занята, используется указанное имя хранилища. Укажите имя, которое с высокой вероятностью будет уникальным.

  7. В окне Создать файл параметров из значений, используемых в этом развертывании? выберите Нет.

Создание ресурсов занимает несколько секунд. Дополнительные сведения см. в статье Развертывание файлов Bicep с помощью Visual Studio Code.

Файл Bicep также можно развернуть с помощью Azure CLI или Azure PowerShell.

az group create --name exampleRG --location eastus

az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageName=uniquename

После завершения развертывания должно отобразиться сообщение о том, что развертывание успешно выполнено.

Очистка ресурсов

Если ресурсы Azure больше не нужны, используйте Azure CLI или модуль Azure PowerShell, чтобы удалить группу ресурсов, созданную для краткого руководства.

az group delete --name exampleRG

Дальнейшие действия