Membuat sumber daya jaringan virtual menggunakan Bicep

Banyak penyebaran Azure memerlukan sumber daya jaringan untuk digunakan dan dikonfigurasi. Anda bisa menggunakan Bicep untuk menentukan sumber daya jaringan Azure Anda.

Jaringan virtual dan subnet Azure

Tentukan jaringan virtual Anda dengan membuat sumber daya dengan jenis Microsoft.Network/virtualNetworks.

Mengonfigurasi subnet menggunakan properti subnet

Jaringan virtual berisi subnet, yang merupakan grup logika alamat IP di dalam jaringan virtual. Ada dua cara untuk menentukan subnet dalam Bicep: menggunakan properti subnets pada sumber daya jaringan virtual, dan dengan membuat sumber daya turunan dengan jenis Microsoft.Network/virtualNetworks/subnets.

Peringatan

Hindari menetapkan subnet sebagai sumber daya turunan. Pendekatan ini dapat mengakibatkan waktu henti untuk sumber daya selama penyebaran berikutnya, atau penyebaran yang gagal.

Paling baik menentukan subnet di dalam definisi jaringan virtual, seperti dalam contoh ini:

Contoh berikut adalah bagian dari contoh yang lebih besar. Untuk file Bicep yang dapat Anda gunakan, lihat file lengkapnya.

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-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'
        }
      }
    ]
  }
}

Meskipun kedua pendekatan memungkinkan Anda menentukan dan membuat subnet, ada perbedaan yang penting. Saat Anda menentukan subnet dengan menggunakan sumber daya turunan, saat pertama kali file Bicep Anda digunakan, jaringan virtual digunakan. Lalu, setelah penyebaran jaringan virtual selesai, setiap subnet digunakan. Pengurutan ini terjadi karena Azure Resource Manager menggunakan setiap sumber daya individual secara terpisah.

Saaat Anda menyebarkan ulang file Bicep yang sama, urutan penyebaran yang sama akan terjadi. Namun, jaringan virtual disebarkan tanpa subnet yang dikonfigurasi di dalamnya karena properti subnets kosong secara efektif. Lalu, setelah jaringan virtual dikonfigurasi ulang, sumber daya subnet di disebarkan ulang, yang membentuk kembali setiap subnet. Dalam beberapa situasi, perilaku ini menyebabkan sumber daya di dalam jaringan virtual Anda kehilangan konektivitas selama penyebaran. Dalam situasi lain, Azure mencegah Anda mengubah jaringan virtual dan penyebaran gagal.

Mengakses ID sumber daya subnet

Anda sering perlu merujuk ke ID sumber daya subnet. Saat menggunakan properti subnets untuk menentukan subnet, Anda dapat menggunakan kata kunci existing untuk juga mendapatkan referensi yang sangat diketik ke subnet, lalu mengakses properti id:

Contoh berikut adalah bagian dari contoh yang lebih besar. Untuk file Bicep yang dapat Anda gunakan, lihat file lengkapnya.

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-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

Karena contoh ini menggunakan kata kunci existing untuk mengakses sumber daya subnet, dan bukan menetapkan sumber daya subnet lengkap, sumber daya tersebut tidak memiliki risiko yang diuraikan di bagian sebelumnya.

Anda juga dapat mengombinasikan kata kunci existing dan scopeuntuk merujuk ke jaringan virtual atau sumber daya subnet dalam grup sumber daya lain.

Kelompok Keamanan Jaringan

Kelompok keamanan jaringan sering digunakan untuk menerapkan aturan yang mengontrol aliran lalu lintas masuk dan keluar dari subnet atau antarmuka jaringan. Menentukan aturan dalam jumlah besar di dalam file Bicep bisa menjadi rumit, dan untuk berbagi aturan di beberapa file Bicep. Pertimbangkan untuk menggunakan Pola file variabel bersama saat Anda bekerja dengan grup keamanan jaringan besar atau kompleks.

Titik Akhir Privat

Titik akhir privat harus disetujui. Dalam beberapa situasi, persetujuan terjadi secara otomatis. Namun dalam skenario lain, Anda harus menyetujui titik akhir sebelum dapat digunakan.

Persetujuan titik akhir privat adalah operasi, jadi Anda tidak dapat melakukannya secara langsung dalam kode Bicep. Namun, Anda dapat menggunakan skrip penyebaran untuk menjalankan operasi. Atau, Anda bisa menjalankan operasi di luar file Bicep Anda, seperti dalam skrip alur.