Создание ресурсов виртуальной сети с помощью Bicep
Многие развертывания Azure требуют развертывания и настройки сетевых ресурсов. С помощью Bicep можно определить сетевые ресурсы Azure.
виртуальные сети и подсети;
Определите виртуальные сети, создав ресурс с типом Microsoft.Network/virtualNetworks
.
Настройка подсетей с помощью свойства подсетей
Виртуальные сети содержат подсети, которые являются логическими группами IP-адресов в виртуальной сети. Определить подсети в Bicep можно двумя способами: с помощью свойства subnets
ресурса виртуальной сети и путем создания дочернего ресурса с типом Microsoft.Network/virtualNetworks/subnets
.
Предупреждение
Не определяйте подсети как дочерние ресурсы. Этот подход может привести к простою ресурсов при последующих развертываниях или к сбою развертываний.
Подсети лучше всего определить в определении виртуальной сети, как в этом примере:
Следующий пример является частью большего примера. Для файла Bicep, который вы можете развернуть, см. полный файл.
param location string = resourceGroup().location
var virtualNetworkName = 'my-vnet'
var subnet1Name = 'Subnet-1'
var subnet2Name = 'Subnet-2'
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: virtualNetworkName
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: subnet1Name
properties: {
addressPrefix: '10.0.0.0/24'
}
}
{
name: subnet2Name
properties: {
addressPrefix: '10.0.1.0/24'
}
}
]
}
resource subnet1 'subnets' existing = {
name: subnet1Name
}
resource subnet2 'subnets' existing = {
name: subnet2Name
}
}
output subnet1ResourceId string = virtualNetwork::subnet1.id
output subnet2ResourceId string = virtualNetwork::subnet2.id
Хотя оба подхода позволяют определять и создавать подсети, между ними есть важное различие. Если вы определяете подсети с использованием дочерних ресурсов, при первом развертывании файла Bicep развертывается виртуальная сеть. После развертывания виртуальной сети развертывается каждая подсеть. Такое последовательное развертывание происходит потому, что Azure Resource Manager развертывает каждый ресурс отдельно.
При повторном развертывании того же файла Bicep возникает та же последовательность развертывания. Но виртуальная сеть развертывается без настройки подсетей, так как это свойство subnets
фактически пустое. Затем, после перенастройки виртуальной сети, ресурсы подсетей повторно развертываются и повторно создается каждая подсеть. В некоторых случаях такое поведение приводит к потерям связи между ресурсами в вашей виртуальной сети во время развертывания. В других случаях Azure не позволяет изменять виртуальную сеть и развертывание завершается сбоем.
Получение доступа к ИД ресурсов подсети
Часто требуется ссылаться на ИД ресурсов подсети. При использовании свойства subnets
для определения подсети вы можете применить ключевое словоexisting
, чтобы также получить строго типизированную ссылку на подсеть, а затем обратиться к свойству id
подсети:
Следующий пример является частью большего примера. Для файла Bicep, который вы можете развернуть, см. полный файл.
param location string = resourceGroup().location
var virtualNetworkName = 'my-vnet'
var subnet1Name = 'Subnet-1'
var subnet2Name = 'Subnet-2'
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: virtualNetworkName
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: subnet1Name
properties: {
addressPrefix: '10.0.0.0/24'
}
}
{
name: subnet2Name
properties: {
addressPrefix: '10.0.1.0/24'
}
}
]
}
resource subnet1 'subnets' existing = {
name: subnet1Name
}
resource subnet2 'subnets' existing = {
name: subnet2Name
}
}
output subnet1ResourceId string = virtualNetwork::subnet1.id
output subnet2ResourceId string = virtualNetwork::subnet2.id
В этом примере вместо определения полного ресурса подсети для доступа к ресурсу подсети используется ключевое слово existing
. При этом нет рисков, описанных в предыдущем разделе.
Кроме того, вы можете объединить ключевые слова existing
и scope
для ссылки на ресурс виртуальной сети или подсети в другой группе ресурсов.
Группы безопасности сети
Группы безопасности сети часто используются для применения правил, контролирующих входящий и исходящий потоки трафика из подсети или сетевого интерфейса. Определение большого количества правил в файле Bicep и их совместное использование в нескольких файлах Bicep может быть трудоемким процессом. При работе со сложными или большими группами безопасности сети рекомендуем использовать шаблон файла общих переменных.
Частные конечные точки
Частные конечные точки должны быть утверждены. В некоторых случаях утверждение происходит автоматически. Но в других случаях для использования конечной точки вам необходимо утвердить ее.
Утверждение частной конечной точки — это операция, поэтому ее нельзя выполнить непосредственно в коде Bicep. Вызвать операцию можно с помощью скрипта развертывания. Кроме того, вы можете вызвать операцию вне файла Bicep, например в скрипте конвейера.
Связанные ресурсы
- Документация по ресурсам
- Дочерние ресурсы
- Шаблоны быстрого запуска