Criar recursos de rede virtual usando o Bicep
Muitas implantações do Azure necessitam que os recursos de rede sejam implantados e configurados. Você pode usar o Bicep para definir seus recursos de rede do Azure.
Redes virtuais e sub-redes
Defina suas redes virtuais criando um recurso com o tipo Microsoft.Network/virtualNetworks
.
Configurar sub-redes usando a propriedade de sub-redes
As redes virtuais contêm sub-redes, que são grupos lógicos de endereços IP na rede virtual. Há duas maneiras de definir sub-redes no Bicep: usando a propriedade subnets
no recurso de rede virtual e criando um recurso filho com o tipo Microsoft.Network/virtualNetworks/subnets
.
Aviso
Evite definir sub-redes como recursos filho. Essa abordagem pode resultar em tempo de inatividade para seus recursos durante implantações subsequentes ou implantações com falha.
É melhor definir suas sub-redes dentro da definição de rede virtual, como neste exemplo:
O exemplo a seguir faz parte de um exemplo maior. Para ver um arquivo Bicep que você pode implantar, consulte o arquivo completo.
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
Embora as duas abordagens permitam definir e criar sub-redes, há uma diferença importante. Ao definir suas sub-redes usando recursos filho, na primeira vez que o arquivo Bicep é implantado, a rede virtual é implantada. Em seguida, depois que a implantação da rede virtual é concluída, cada sub-rede é implantada. Esse sequenciamento ocorre porque o Azure Resource Manager implanta cada recurso individual separadamente.
Quando você reimplanta o mesmo arquivo Bicep, ocorre a mesma sequência de implantação. No entanto, a rede virtual é implantada sem qualquer sub-rede configurada nela, pois a \propriedade subnets
está efetivamente vazia. Em seguida, depois que a rede virtual é reconfigurada, os recursos de sub-rede são implantados novamente, o que restabelece cada sub-rede. Em algumas situações, esse comportamento faz com que os recursos em sua rede virtual percam a conectividade durante a implantação. Em outras situações, o Azure impede que você modifique a rede virtual e sua implantação falhe.
Acessar IDs de recurso de sub-rede
Você precisa se referir à ID de recurso de uma sub-rede frequentemente. Ao usar a propriedade subnets
para definir sua sub-rede, é possível usar a existing
palavra-chave para também obter uma referência fortemente digitada à sub-rede e acessar a propriedade da sub-rede id
:
O exemplo a seguir faz parte de um exemplo maior. Para ver um arquivo Bicep que você pode implantar, consulte o arquivo completo.
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
Como este exemplo usa a palavra-chave existing
para acessar o recurso de sub-rede, em vez de definir o recurso de sub-rede completo, ele não tem os riscos descritos na seção anterior.
Você também pode combinar as palavras-chave existing
e scope
para se referir a uma rede virtual ou recurso de sub-rede em outro grupo de recursos.
Grupos de segurança de rede
Os grupos de segurança de rede são frequentemente usados para aplicar regras que controlam o fluxo de entrada e saída do tráfego de uma sub-rede ou adaptador de rede. Pode se tornar complicado definir um grande número de regras em um arquivo do Bicep e compartilhar regras em vários arquivos do Bicep. Considere usar o padrão de arquivo variável compartilhado ao trabalhar com grupos complexos ou grandes de segurança de rede.
Pontos de extremidade privados
Pontos de extremidade privados devem ser aprovados. Em algumas situações, a aprovação acontece automaticamente. Mas em outros cenários, você precisa aprovar o ponto de extremidade antes dele ser utilizável.
A aprovação do ponto de extremidade privado é uma operação, portanto, você não pode realizá-la diretamente no código do Bicep. No entanto, você pode usar um script de implantação para invocar a operação. Opcionalmente, é possível invocar a operação de fora do arquivo Bicep, como em um script de pipeline.
Recursos relacionados
- Documentação de recursos
- Recursos filho
- Modelos de início rápido