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


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

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

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

Необходимые компоненты

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

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

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

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

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

В main.bicep введите виртуальную сеть, а затем выберите res-vnet из списка, а затем нажмите клавишу [TAB] или [ВВОД].

Снимок экрана: добавление фрагмента для виртуальной сети.

Совет

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

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

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'name'
  location: 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'
        }
      }
    ]
  }
}

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

Удалите @2019-11-01и замените его @на . Выберите последнюю версию API.

Снимок экрана: обновление версии API.

В следующем разделе вы исправите ошибку определения отсутствующих параметров.

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

name: 'exampleVNet'

Добавить параметр

Фрагмент кода, добавленный в последнем разделе, пропускает определение параметра.

В верхней части файла добавьте:

param location

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

Снимок экрана: добавление строкового типа к параметру.

Присвойте параметру значение по умолчанию:

param location string = resourceGroup().location

Дополнительные сведения о функции, используемой в значении по умолчанию, см . в resourceGroup().

Добавьте другой параметр для имени учетной записи хранения со значением по умолчанию:

param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Дополнительные сведения см. в разделе Интерполяция и uniqueString().

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

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

Снимок экрана: добавление декораторов к параметру.

Добавьте обе декораторы и укажите ограничения символов:

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Можно также добавить описание параметра. Включите сведения, помогающие пользователям развертывать файл 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 storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

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

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

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

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

resource exampleStorage

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

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

Снимок экрана: выбор учетных записей хранения для типа ресурса.

После выбора Microsoft.Storage/storageAccounts отобразятся доступные версии API. Выберите последнюю версию. Для следующего снимка экрана: 2023-05-01.

Снимок экрана: выбор версии API для типа ресурса.

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

Снимок экрана: добавление обязательных свойств.

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

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

Осталось совсем немного. Просто укажите значения для этих свойств.

Опять же, IntelliSense помогает вам. Задайте для name значение storageAccountName, которое представляет собой параметр, содержащий имя учетной записи хранения. Для locationэтого задайте для него locationзначение , которое является параметром, созданным ранее. При добавлении sku.name и kindиспользовании IntelliSense предоставляет допустимые параметры.

Чтобы добавить необязательные свойства вместе с необходимыми свойствами, поместите курсор в нужное расположение и нажмите клавиши CTRL+ПРОБЕЛ. IntelliSense предлагает неиспользуемые свойства, как показано на следующем снимке экрана:

Снимок экрана: добавление дополнительных свойств.

По завершении у вас есть:

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-01-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@2023-05-01' = {
  name: storageAccountName
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

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

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

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

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

Снимок экрана: визуализатор Bicep.

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

Снимок экрана: схема визуализатора Bicep.

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

  1. Щелкните правой кнопкой мыши файл Bicep в VS Code и выберите "Развернуть Bicep-файл".

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

  2. В текстовом поле развертывания введите имя развертывания , введите deployStorageAndVNet и нажмите клавишу [ВВОД].

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

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

  5. Выберите расположение для группы ресурсов, выберите центральную часть США или выбранное расположение, а затем нажмите клавишу [ВВОД].

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

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

Создание ресурсов занимает несколько секунд. Дополнительные сведения см. в разделе "Развертывание 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 storageAccountName=uniquename

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

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

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

az group delete --name exampleRG

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