Udostępnij za pośrednictwem


Tworzenie zasobów sieci wirtualnej przy użyciu Bicep

Wiele Azure wdrożeń wymaga wdrożenia i skonfigurowania zasobów sieciowych. Za pomocą Bicep można zdefiniować zasoby sieciowe Azure.

Sieci wirtualne i podsieci

Zdefiniuj sieci wirtualne, tworząc zasób o typie Microsoft.Network/virtualNetworks.

Konfigurowanie podsieci przy użyciu właściwości podsieci

Sieci wirtualne zawierają podsieci, które są logicznymi grupami adresów IP w sieci. Podsieci powinny być zawsze zarządzane jako zasoby podrzędne, a właściwość podsieci nigdy nie powinna być definiowana w ramach zasobu sieci wirtualnej. Takie podejście zapewnia bezpieczny i niezależny cykl życia dla obu typów zasobów.

Uwaga / Notatka

Interfejs API Azure Virtual Network został zaktualizowany w celu umożliwienia modyfikacji sieci wirtualnych bez konieczności dołączania właściwości podsieci do żądań PUT. Wcześniej pominięcie właściwości podsieci spowodowałoby usunięcie istniejących podsieci. W przypadku nowego zachowania, jeśli właściwość podsieci nie jest uwzględniona w żądaniu PUT, istniejące podsieci pozostają niezmienione. Jawne ustawienie właściwości podsieci na wartość pustą powoduje usunięcie wszystkich istniejących podsieci, a jednocześnie udostępnienie określonych konfiguracji podsieci tworzy lub aktualizuje odpowiednio podsieci. Ta zmiana upraszcza zarządzanie sieciami wirtualnymi, uniemożliwiając niezamierzone usunięcia podsieci podczas aktualizacji. Aby uzyskać więcej informacji, zobacz Azure Virtual Network obsługuje teraz aktualizacje bez właściwości podsieci.

Najlepiej jest zdefiniować swoje podsieci jako zasoby podrzędne, jak w tym przykładzie:

param location string = resourceGroup().location

var virtualNetworkName = 'my-vnet'
var subnet1Name = 'Subnet-1'
var subnet2Name = 'Subnet-2'

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2025-01-01' = {
  name: virtualNetworkName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
  }

  resource subnet1 'subnets' = {
    name: subnet1Name
    properties: {
      addressPrefix: '10.0.0.0/24'
    }  }

  resource subnet2 'subnets' = {
    name: subnet2Name
    properties: {
      addressPrefix: '10.0.1.0/24'
    }    
  }
}

output subnet1ResourceId string = virtualNetwork::subnet1.id
output subnet2ResourceId string = virtualNetwork::subnet2.id

Aby odwołać się do zagnieżdżonego zasobu poza zasobem nadrzędnym, należy go zakwalifikować przy użyciu nazwy zawierającego zasobu i operatora :: , jak pokazano w poprzednim przykładzie.

Sieciowe grupy zabezpieczeń

Sieciowe grupy zabezpieczeń są często używane do stosowania reguł kontrolujących przepływ ruchu przychodzącego i wychodzącego z podsieci lub interfejsu sieciowego. Może to stać się kłopotliwe, aby zdefiniować dużą liczbę reguł w pliku Bicep i współużytkować reguły w wielu plikach Bicep. Rozważ użycie wzorca pliku zmiennej udostępnionej podczas pracy ze złożonymi lub dużymi sieciowymi grupami zabezpieczeń.

Prywatne punkty końcowe

Prywatne punkty końcowe muszą być zatwierdzone. W niektórych sytuacjach zatwierdzenie odbywa się automatycznie. Jednak w innych scenariuszach należy zatwierdzić punkt końcowy, zanim będzie można go używać.

Zatwierdzenie prywatnego punktu końcowego jest operacją, więc nie można wykonać jej bezpośrednio w kodzie Bicep. Można jednak wywołać operację za pomocą skryptu wdrażania . Alternatywnie można wywołać operację poza plikiem Bicep, na przykład w skrypcie potoku.