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


Быстрый старт: Создание bicep-файлов в Visual Studio Code

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

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

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

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

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

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

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

Запустите Visual Studio Code и создайте файл с именем main.bicep. В main.bicep введите vnet, выберите res-vnet из списка, а затем нажмите клавишу TAB или ВВОД.

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

Совет

Если вы не видите эти параметры IntelliSense в Visual Studio Code, убедитесь, что вы установили расширение Bicep, как указано в предварительных требованиях. Если расширение установлено, дайте языковому сервису 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, в то время как красное фигурное подчеркивание сигнализирует об ошибке, вызванной отсутствующим определением параметра. Анализатор кода Bicep проверяет файлы Bicep на наличие синтаксических ошибок и несоответствия лучшим практикам. Наведите указатель мыши на @2019-11-01, и во всплывающей области отображается используйте более позднюю версию API для 'Microsoft.Network/virtualNetworks'. Выберите быстрое исправление в всплывающей области, а затем выберите "Заменить с 2024-05-01" , чтобы обновить версию API.

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

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

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

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

name: 'exampleVNet'

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

Фрагмент кода, добавленный в последнем разделе, пропускает определение параметра, locationкак показано красным фигурным подчеркиванием. В верхней части файла добавьте:

param location

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

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

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

param location string = resourceGroup().location

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

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

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

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

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

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

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

Добавьте оба декоратора и укажите пределы символов (например, 3 и 24 ниже).

@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 lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

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

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

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

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

resource storageAccount

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

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

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

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

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

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

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

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

resource storageAccount '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)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location

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

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

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

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

Визуализатор Bicep показывает графическое представление ресурсов в файле.

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

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

Этот визуализатор показывает ресурсы, определенные в файле Bicep, и соединители между их зависимостями. Два ресурса, определенные в этом кратком руководстве, не имеют зависимой связи, поэтому между ними нет соединителя:

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

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

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

    Снимок экрана опции «Развернуть файл Bicep».

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

    Снимок экрана: ввод имени развертывания.

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

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

  5. Выберите расположение для группы ресурсов, выберите Центральный США или другое место по вашему выбору, а затем нажмите ВВОД.

  6. В разделе "Выбор файла параметров" выберите "Нет".

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

Вы также можете использовать Azure CLI или Azure PowerShell для развертывания Bicep-файла:

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

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