Dela via


Skapa virtuella nätverksresurser med hjälp av Bicep

Många Azure-distributioner kräver att nätverksresurser distribueras och konfigureras. Du kan använda Bicep för att definiera dina Azure-nätverksresurser.

Virtuella nätverk och undernät

Definiera dina virtuella nätverk genom att skapa en resurs med typen Microsoft.Network/virtualNetworks.

Konfigurera undernät med hjälp av undernätsegenskapen

Virtuella nätverk innehåller undernät, som är logiska grupper av IP-adresser i det virtuella nätverket. Det finns två sätt att definiera undernät i Bicep: genom att använda subnets egenskapen på den virtuella nätverksresursen och genom att skapa en underordnad resurs med typen Microsoft.Network/virtualNetworks/subnets.

Varning

Undvik att definiera undernät som underordnade resurser. Den här metoden kan leda till driftstopp för dina resurser under efterföljande distributioner eller misslyckade distributioner.

Det är bäst att definiera dina undernät i definitionen för det virtuella nätverket, som i det här exemplet:

Följande exempel är en del av ett större exempel. En Bicep-fil som du kan distribuera finns i den fullständiga filen.

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'
        }
      }
    ]
  }
}

Även om båda metoderna gör att du kan definiera och skapa dina undernät finns det en viktig skillnad. När du definierar undernät med hjälp av underordnade resurser distribueras det virtuella nätverket första gången Bicep-filen distribueras. När distributionen av det virtuella nätverket har slutförts distribueras varje undernät. Den här sekvenseringen beror på att Azure Resource Manager distribuerar varje enskild resurs separat.

När du distribuerar om samma Bicep-fil sker samma distributionssekvens. Det virtuella nätverket distribueras dock utan några undernät som konfigurerats på det eftersom subnets egenskapen i praktiken är tom. När det virtuella nätverket har konfigurerats om distribueras undernätsresurserna om, vilket återupprättar varje undernät. I vissa situationer leder det här beteendet till att resurserna i det virtuella nätverket förlorar anslutningen under distributionen. I andra situationer hindrar Azure dig från att ändra det virtuella nätverket och distributionen misslyckas.

Åtkomst till resurs-ID:t för undernätet

Du behöver ofta referera till ett undernäts resurs-ID. När du använder subnets egenskapen för att definiera ditt undernät kan du använda nyckelordet existing för att även hämta en starkt typifierad referens till undernätet och sedan komma åt undernätets id egenskap:

Följande exempel är en del av ett större exempel. En Bicep-fil som du kan distribuera finns i den fullständiga filen.

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

Eftersom det här exemplet använder nyckelordet existing för att få åtkomst till undernätsresursen har det inte de risker som beskrivs i föregående avsnitt i stället för att definiera den fullständiga undernätsresursen.

Du kan också kombinera nyckelorden existing och scope för att referera till ett virtuellt nätverk eller en undernätsresurs i en annan resursgrupp.

Nätverkssäkerhetsgrupper

Nätverkssäkerhetsgrupper används ofta för att tillämpa regler som styr det inkommande och utgående trafikflödet från ett undernät eller nätverksgränssnitt. Det kan bli besvärligt att definiera ett stort antal regler i en Bicep-fil och dela regler över flera Bicep-filer. Överväg att använda filmönstret Delad variabel när du arbetar med komplexa eller stora nätverkssäkerhetsgrupper.

Privata slutpunkter

Privata slutpunkter måste godkännas. I vissa situationer sker godkännande automatiskt. Men i andra scenarier måste du godkänna slutpunkten innan den kan användas.

Godkännande av privat slutpunkt är en åtgärd, så du kan inte utföra den direkt i din Bicep-kod. Du kan dock använda ett distributionsskript för att anropa åtgärden. Du kan också anropa åtgärden utanför Bicep-filen, till exempel i ett pipelineskript.