Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья описывает синтаксис, который используется для добавления ресурса в файл Bicep. В файле Bicep ограничено 800 ресурсов. Дополнительные сведения см. в разделе Ограничения шаблона.
Определение ресурсов
Добавьте объявление ресурса с помощью ключевого слова resource. Задайте символьное имя ресурса. Символьное имя не совпадает с именем ресурса. Символьное имя используется, чтобы было ссылаться на ресурс в других частях файла Bicep.
@<decorator>(<argument>)
resource <symbolic-name> '<full-type-name>@<api-version>' = {
<resource-properties>
}
Таким образом, объявление для учетной записи хранения может начинаться с:
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
...
}
В символьных именах учитывается регистр. Они должны могут содержать буквы, цифры и символы подчеркивания (_). Они не могут начинаться с цифры. Имя ресурса не может совпадать с именем параметра, переменной или модуля.
Доступные версии и типы ресурсов см. в справочнике по ресурсам Bicep. Bicep не поддерживает apiProfile, доступный в JSON шаблонов Azure Resource Manager (ARM). Вы также можете определить ресурсы поставщика расширяемости Bicep. Дополнительные сведения см. в разделе Bicep расширяемости поставщика Kubernetes.
Чтобы выполнить условное развертывание ресурса, используйте синтаксис if. Дополнительные сведения см. в разделе Условное развертывание в Bicep.
resource <symbolic-name> '<full-type-name>@<api-version>' = if (condition) {
<resource-properties>
}
Чтобы развернуть несколько экземпляров ресурса, используйте синтаксис for. Можно указать, следует ли развертывать экземпляры последовательно или параллельно, с помощью декоратора batchSize. Дополнительные сведения о циклах см. в статье Интерактивные циклы в Bicep.
@batchSize(int) // optional decorator for serial deployment
resource <symbolic-name> '<full-type-name>@<api-version>' = [for <item> in <collection>: {
<properties-to-repeat>
}]
Для создания массива также можно использовать синтаксис for для свойств ресурса.
resource <symbolic-name> '<full-type-name>@<api-version>' = {
properties: {
<array-property>: [for <item> in <collection>: <value-to-repeat>]
}
}
Использование декораторов
Декораторы записываются в формате @expression и помещаются над объявлениями ресурсов. В следующей таблице показаны доступные декораторы для ресурсов.
| Декоратор | Аргумент | Описание |
|---|---|---|
| batchSize | ничего | Настройте экземпляры для последовательного развертывания. |
| описание | строка | Укажите описания ресурса. |
| onlyIfNotExists | ничего | Разверните ресурс только в том случае, если он еще не существует в целевой области. |
Декораторы находятся в пространстве имен sys. Если вам важно, чтобы декоратор не путался с другими элементами с таким же именем, добавьте к нему префикс sys. Например, если в файле Bicep есть параметр с именем description, при использовании оформителя description необходимо добавить к имени пространство имен sys.
Размер партии
Можно применить @batchSize() только к определению ресурса или модуля, использующего for выражение.
По умолчанию ресурсы развертываются параллельно. При добавлении декоратора batchSize(int) экземпляры развертываются последовательно.
@batchSize(3)
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2025-06-01' = [for storageName in storageAccounts: {
...
}]
Дополнительные сведения см. в статье Развертывание в пакетах.
Описание
Чтобы добавить объяснение, добавьте описание в объявления ресурсов. Например:
@description('Create a number of storage accounts')
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2025-06-01' = [for storageName in storageAccounts: {
...
}]
Текст в формате Markdown можно использовать для текста описания.
толькоЕслиНеСуществует
По умолчанию при запуске развертывания Bicep, Azure Resource Manager (ARM) создает ресурс, если он не существует, или обновляет его, если он уже существует. Если существующий ресурс имеет свойства, отличающиеся от вашего шаблона, ARM может попытаться обновить его или завершиться неудачей, если обновления не разрешены.
Начиная с версии Bicep 0.38.3, декоратор @onlyIfNotExists() указывает ARM создать ресурс только в том случае, если он еще не существует. Если ресурс с идентификатором ресурса найден, ARM пропускает создание и оставляет существующий ресурс неизменным.
@onlyIfNotExists()
resource example 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'mystorageacct'
location: resourceGroup().location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
Имя ресурса
У каждого ресурса есть имя. При задании имени ресурса обратите внимание на правила и ограничения для имен ресурсов.
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
...
}
Как правило, имя назначается параметру, что позволяет передавать другие значения во время развертывания.
@minLength(3)
@maxLength(24)
param storageAccountName string
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: storageAccountName
...
}
Расположение ресурса
Для многих ресурсов требуется расположение. Определить, требуется ли ресурсу расположение, можно с помощью технологии IntelliSense или справочника по шаблону. В следующем примере мы добавляем параметр location, используемый для учетной записи хранения.
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
location: 'eastus'
...
}
Как правило, расположение назначается параметру, что позволяет выполнять развертывание в различных расположениях.
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
location: location
...
}
Различные типы ресурсов поддерживаются в разных расположениях. Чтобы получить сведения о поддерживаемых расположениях для службы Azure, см. раздел Доступность продуктов по регионам. Чтобы получить поддерживаемые расположения для типа ресурса, используйте Azure PowerShell или Azure CLI.
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes `
| Where-Object ResourceTypeName -eq batchAccounts).Locations
Теги ресурсов
Вы можете добавлять теги к ресурсу во время развертывания. Теги помогают логически упорядочивать развернутые ресурсы. Примеры различных способов указания тегов см. в разделе Теги шаблонов ARM.
Управляемые удостоверения для ресурсов
Некоторые ресурсы поддерживают управляемые удостоверения для ресурсов Azure. У них на корневом уровне объявления ресурса есть объект Identity.
Вы можете использовать удостоверения, назначенные системой или пользователем.
В следующем примере показано, как настроить назначенное системой удостоверение для кластера Службы Azure Kubernetes.
resource aks 'Microsoft.ContainerService/managedClusters@2025-08-02-preview' = {
name: clusterName
location: location
tags: tags
identity: {
type: 'SystemAssigned'
}
В следующем примере показано, как настроить назначаемое пользователем удостоверение для виртуальной машины.
param userAssignedIdentity string
resource vm 'Microsoft.Compute/virtualMachines@2025-04-01' = {
name: vmName
location: location
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${userAssignedIdentity}': {}
}
}
Свойства конкретного ресурса
Приведенные выше свойства являются общими для большинства типов ресурсов. После задания этих значений необходимо задать свойства, относящиеся к типу ресурсов, которые вы развертываете.
Используйте IntelliSense или справочник по ресурсам Bicep, чтобы определить, какие свойства доступны и какие из них являются обязательными. В следующем примере задаются оставшиеся свойства учетной записи хранения.
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
location: 'eastus'
sku: {
name: 'Standard_LRS'
tier: 'Standard'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
Следующие шаги
- Дополнительные сведения об условном развертывании ресурса см. в разделе Условное развертывание в Bicep.
- Чтобы указать ссылку на существующий ресурс, воспользуйтесь статьей Существующие ресурсы в Bicep.
- Дополнительные сведения о том, как определяется порядок развертывания, см. в статье Зависимости ресурсов в Bicep.