Краткое руководство. Создание Bicep-файлов с помощью Visual Studio
В этом кратком руководстве приведены пошаговые инструкции по созданию файла Bicep с помощью Visual Studio. Далее вы создадите учетную запись хранения и виртуальную сеть. Вы также узнаете, как расширение Bicep упрощает разработку, обеспечивая безопасность типов, проверку синтаксиса и автозаполнение.
Аналогичные возможности разработки также поддерживаются в Visual Studio Code. См. краткое руководство. Создание файлов Bicep с помощью Visual Studio Code.
Предварительные требования
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
- Visual Studio версии 17.3.0 (предварительная версия 3 или более поздняя). См. страницу предварительной версии Visual Studio.
- Расширение Bicep для Visual Studio. См. страницу Visual Studio Marketplace.
- Для развертывания файла Bicep требуется последняя версия Azure CLI или модуля Azure PowerShell.
Добавление фрагмента ресурсов
Запустите Visual Studio и создайте новый файл с именем main.bicep.
Visual Studio с расширением Bicep упрощает разработку, предоставляя предварительно определенные фрагменты. В этом кратком руководстве показано, как добавить фрагмент кода, который создает виртуальную сеть.
В файле main.bicep введите vnet. Выберите res-vnet из списка, а затем нажмите клавишу табуляции или ВВОД.
Совет
Если вы не видите эти параметры IntelliSense в Visual Studio, убедитесь, что вы установили расширение Bicep, как указано в разделе Предварительные требования. Если расширение установлено, подождите некоторое время после открытия файла Bicep. Обычно запуск происходит быстро, но пока он не выполнен, параметры IntelliSense будут недоступны.
Файл Bicep теперь содержит следующий код.
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-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'
}
}
]
}
}
Этот фрагмент содержит все значения, требуемые для определения виртуальной сети. Однако этот код при необходимости можно изменить. Например, name
не подходит для использования в качестве имени виртуальной сети. Измените значение свойства name
на exampleVnet
.
name: 'exampleVnet'
Обратите внимание, что элемент location имеет красное подчеркивание. Это указывает на проблему. Наведите указатель мыши на элемент location. Отобразится сообщение об ошибке Имя "location" не существует в текущем контексте. Мы создадим параметр расположения в следующем разделе.
Добавление параметров
Теперь мы добавим два параметра для имени и расположения учетной записи хранения. В начале файла добавьте следующее:
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
Параметр имени учетной записи хранения готов к использованию.
Добавьте еще один параметр расположения:
param location string = resourceGroup().location
Добавление ресурса
Вместо использования фрагмента для определения учетной записи хранения мы будем использовать IntelliSense для установки значений. IntelliSense упрощает этот шаг по сравнению с указанием значений вручную.
Чтобы определить ресурс, используйте ключевое слово resource
. Под виртуальной сетью введите exampleStorage ресурса.
resource exampleStorage
exampleStorage — это символическое имя развертываемого ресурса. Вы можете использовать это имя, чтобы ссылаться на ресурс в других частях файла Bicep.
При добавлении пробела после символического имени отобразится список типов ресурсов. Продолжайте вводить текст storage, пока этот пункт не станет доступным для выбора в списке.
После выбора Microsoft.Storage/storageAccounts отобразятся доступные версии API. Выберите 2021-09-01 или последнюю версию API. Мы советуем использовать последнюю версию API.
После одинарной кавычки, указанной для типа ресурса, добавьте =
и пробел. Отобразятся параметры для добавления свойств в ресурс. Выберите обязательные свойства.
Этот параметр добавляет все свойства для типа ресурса, требуемые для его развертывания. После выбора этого параметра ваша учетная запись хранения будет иметь следующие свойства.
resource exampleStorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 1
location: 2
sku: {
name: 3
}
kind: 4
}
В коде есть четыре заполнителя. Используйте [TAB], чтобы просмотреть их и ввести значения. В этом опять-таки поможет IntelliSense. Задайте для name
значение storageName, которое представляет собой параметр, содержащий имя учетной записи хранения. Для location
задайте значение location
. При добавлении имени и типа SKU IntelliSense предоставит допустимые параметры.
После завершения работы у вас будет следующее.
@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
param location string = resourceGroup().location
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: storageName
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 exampleStorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
Дополнительные сведения о синтаксисе Bicep см. в структуре Bicep.
Развертывание BICEP-файла
Развертывание Bicep-файлов пока нельзя выполнить из Visual Studio. 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