Bicep kullanarak sanal ağ kaynakları oluşturma

Birçok Azure dağıtımı için ağ kaynaklarının dağıtılması ve yapılandırılması gerekir. Azure ağ kaynaklarınızı tanımlamak için Bicep'i kullanabilirsiniz.

Sanal ağlar ve alt ağlar

türüne Microsoft.Network/virtualNetworkssahip bir kaynak oluşturarak sanal ağlarınızı tanımlayın.

Alt ağlar özelliğini kullanarak alt ağları yapılandırma

Sanal ağlar, sanal ağ içindeki IP adreslerinin mantıksal grupları olan alt ağlar içerir. Bicep'te alt ağları tanımlamanın iki yolu vardır: sanal ağ kaynağındaki özelliğini kullanarak subnets ve türünde Microsoft.Network/virtualNetworks/subnetsbir alt kaynak oluşturarak.

Uyarı

Alt ağları alt kaynak olarak tanımlamaktan kaçının. Bu yaklaşım, sonraki dağıtımlar veya başarısız dağıtımlar sırasında kaynaklarınız için kapalı kalma süresine neden olabilir.

Bu örnekte olduğu gibi sanal ağ tanımı içinde alt ağlarınızı tanımlamak en iyisidir:

Aşağıdaki örnek, daha büyük bir örneğin parçasıdır. Dağıtabileceğiniz bicep dosyası için dosyanın tamamına bakın.

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

Her iki yaklaşım da alt ağlarınızı tanımlamanızı ve oluşturmanızı sağlasa da, önemli bir fark vardır. Alt ağları alt kaynakları kullanarak tanımladığınızda, Bicep dosyanız ilk kez dağıtıldığında sanal ağ dağıtılır. Ardından, sanal ağ dağıtımı tamamlandıktan sonra her alt ağ dağıtılır. Azure Resource Manager her kaynağı ayrı ayrı dağıttığı için bu sıralama gerçekleşir.

Aynı Bicep dosyasını yeniden dağıttığınızda aynı dağıtım dizisi gerçekleşir. Ancak, özellik etkin bir şekilde boş olduğundan subnets sanal ağ üzerinde yapılandırılmış alt ağlar olmadan dağıtılır. Ardından, sanal ağ yeniden yapılandırıldıktan sonra alt ağ kaynakları yeniden dağıtılır ve bu da her alt ağı yeniden oluşturur. Bazı durumlarda bu davranış, dağıtımınız sırasında sanal ağınızdaki kaynakların bağlantısının kaybolmasına neden olur. Diğer durumlarda, Azure sanal ağı değiştirmenizi engeller ve dağıtımınız başarısız olur.

Alt ağ kaynak kimliklerine erişme

Genellikle bir alt ağın kaynak kimliğine başvurmanız gerekir. alt ağınızı tanımlamak için özelliğini kullandığınızda subnets , anahtar sözcüğünü existing kullanarak alt ağa kesin olarak yazılan bir başvuru elde edebilir ve ardından alt ağın id özelliğine erişebilirsiniz:

Aşağıdaki örnek, daha büyük bir örneğin parçasıdır. Dağıtabileceğiniz bicep dosyası için dosyanın tamamına bakın.

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

Bu örnek alt ağ kaynağına erişmek için anahtar sözcüğünü existing kullandığından, alt ağ kaynağının tamamını tanımlamak yerine önceki bölümde özetlenen risklere sahip değildir.

Başka bir kaynak grubundaki existing bir sanal ağa veya alt ağ kaynağına başvurmak için ve scope anahtar sözcüklerini de birleştirebilirsiniz.

Ağ güvenlik grupları

Ağ güvenlik grupları genellikle bir alt ağ veya ağ arabiriminden gelen ve giden trafik akışını denetleen kurallar uygulamak için kullanılır. Bir Bicep dosyasında çok sayıda kural tanımlamak ve birden çok Bicep dosyasında kuralları paylaşmak zahmetli olabilir. Karmaşık veya büyük ağ güvenlik gruplarıyla çalışırken Paylaşılan değişken dosya desenini kullanmayı göz önünde bulundurun.

Özel uç noktalar

Özel uç noktaların onaylanması gerekir. Bazı durumlarda onay otomatik olarak gerçekleşir. Ancak diğer senaryolarda uç noktayı kullanılabilir duruma gelmeden önce onaylamanız gerekir.

Özel uç nokta onayı bir işlemdir, bu nedenle bunu doğrudan Bicep kodunuz içinde gerçekleştiremezsiniz. Ancak, işlemi çağırmak için bir dağıtım betiği kullanabilirsiniz. Alternatif olarak, işlem hattı betiğinde olduğu gibi Bicep dosyanızın dışında işlemi çağırabilirsiniz.