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.
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
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.
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
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 scope
untuk 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.
Sumber daya terkait
- Dokumentasi sumber daya
- Sumber daya turunan
- Templat Mulai Cepat