AzureVirtualNetworkExtensions Methods
AddAzureVirtualNetwork(IDistributedApplicationBuilder, string, string?)Section titled AddAzureVirtualNetwork(IDistributedApplicationBuilder, string, string?)extensionIResourceBuilder<AzureVirtualNetworkResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureVirtualNetworkResource> AddAzureVirtualNetwork( this IDistributedApplicationBuilder builder, string name, string? addressPrefix = null) { // ... }}Parameters
builderIDistributedApplicationBuilderThe builder for the distributed application.namestringThe name of the Azure Virtual Network resource.addressPrefixstring?optionalThe address prefix for the virtual network (e.g., "10.0.0.0/16"). If null, defaults to "10.0.0.0/16".Returns
IResourceBuilder<AzureVirtualNetworkResource>A reference to the ApplicationModel.IResourceBuilder`1.Examples
This example creates a virtual network with a subnet for private endpoints:
var vnet = builder.AddAzureVirtualNetwork("vnet");var subnet = vnet.AddSubnet("pe-subnet", "10.0.1.0/24");AddAzureVirtualNetwork(IDistributedApplicationBuilder, string, IResourceBuilder<ParameterResource>)Section titled AddAzureVirtualNetwork(IDistributedApplicationBuilder, string, IResourceBuilder<ParameterResource>)extensionIResourceBuilder<AzureVirtualNetworkResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureVirtualNetworkResource> AddAzureVirtualNetwork( this IDistributedApplicationBuilder builder, string name, IResourceBuilder<ParameterResource> addressPrefix) { // ... }}Parameters
builderIDistributedApplicationBuilderThe builder for the distributed application.namestringThe name of the Azure Virtual Network resource.addressPrefixIResourceBuilder<ParameterResource>The parameter resource containing the address prefix for the virtual network (e.g., "10.0.0.0/16").Returns
IResourceBuilder<AzureVirtualNetworkResource>A reference to the ApplicationModel.IResourceBuilder`1.Examples
This example creates a virtual network with a parameterized address prefix:
var vnetPrefix = builder.AddParameter("vnetPrefix");var vnet = builder.AddAzureVirtualNetwork("vnet", vnetPrefix);var subnet = vnet.AddSubnet("pe-subnet", "10.0.1.0/24");AddSubnet(IResourceBuilder<AzureVirtualNetworkResource>, string, string, string?)Section titled AddSubnet(IResourceBuilder<AzureVirtualNetworkResource>, string, string, string?)extensionIResourceBuilder<AzureSubnetResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureSubnetResource> AddSubnet( this IResourceBuilder<AzureVirtualNetworkResource> builder, string name, string addressPrefix, string? subnetName = null) { // ... }}Parameters
builderIResourceBuilder<AzureVirtualNetworkResource>The Virtual Network resource builder.namestringThe name of the subnet resource.addressPrefixstringThe address prefix for the subnet (e.g., "10.0.1.0/24").subnetNamestring?optionalThe subnet name in Azure. If null, the resource name is used.Returns
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1.Examples
This example adds a subnet to a virtual network:
var vnet = builder.AddAzureVirtualNetwork("vnet");var subnet = vnet.AddSubnet("my-subnet", "10.0.1.0/24");AddSubnet(IResourceBuilder<AzureVirtualNetworkResource>, string, IResourceBuilder<ParameterResource>, string?)Section titled AddSubnet(IResourceBuilder<AzureVirtualNetworkResource>, string, IResourceBuilder<ParameterResource>, string?)extensionIResourceBuilder<AzureSubnetResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureSubnetResource> AddSubnet( this IResourceBuilder<AzureVirtualNetworkResource> builder, string name, IResourceBuilder<ParameterResource> addressPrefix, string? subnetName = null) { // ... }}Parameters
builderIResourceBuilder<AzureVirtualNetworkResource>The Virtual Network resource builder.namestringThe name of the subnet resource.addressPrefixIResourceBuilder<ParameterResource>The parameter resource containing the address prefix for the subnet (e.g., "10.0.1.0/24").subnetNamestring?optionalThe subnet name in Azure. If null, the resource name is used.Returns
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1.Examples
This example adds a subnet with a parameterized address prefix:
var subnetPrefix = builder.AddParameter("subnetPrefix");var vnet = builder.AddAzureVirtualNetwork("vnet");var subnet = vnet.AddSubnet("my-subnet", subnetPrefix);AllowInbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)Section titled AllowInbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)extensionIResourceBuilder<AzureSubnetResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureSubnetResource> AllowInbound( this IResourceBuilder<AzureSubnetResource> builder, string? port = null, string? from = null, string? to = null, SecurityRuleProtocol? protocol = null, int? priority = null, string? name = null) { // ... }}Parameters
builderIResourceBuilder<AzureSubnetResource>The subnet resource builder.portstring?optionalThe destination port range (e.g., "443", "80-443"). Defaults to "*" (any).fromstring?optionalThe source address prefix (e.g., "AzureLoadBalancer", "Internet", "10.0.0.0/8"). Defaults to "*" (any).tostring?optionalThe destination address prefix. Defaults to "*" (any).protocolSecurityRuleProtocol?optionalThe network protocol. Defaults to SecurityRuleProtocol.Asterisk (any).priorityint?optionalThe rule priority (100-4096). If not specified, auto-increments from 100 by 100.namestring?optionalThe rule name. If not specified, auto-generated from parameters.Returns
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.Remarks
Examples
This example allows HTTPS traffic from the Azure Load Balancer:
var subnet = vnet.AddSubnet("web", "10.0.1.0/24") .AllowInbound(port: "443", from: AzureServiceTags.AzureLoadBalancer, protocol: SecurityRuleProtocol.Tcp) .DenyInbound(from: AzureServiceTags.Internet);AllowOutbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)Section titled AllowOutbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)extensionIResourceBuilder<AzureSubnetResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureSubnetResource> AllowOutbound( this IResourceBuilder<AzureSubnetResource> builder, string? port = null, string? from = null, string? to = null, SecurityRuleProtocol? protocol = null, int? priority = null, string? name = null) { // ... }}Parameters
builderIResourceBuilder<AzureSubnetResource>The subnet resource builder.portstring?optionalThe destination port range (e.g., "443", "80-443"). Defaults to "*" (any).fromstring?optionalThe source address prefix. Defaults to "*" (any).tostring?optionalThe destination address prefix (e.g., "Internet", "VirtualNetwork"). Defaults to "*" (any).protocolSecurityRuleProtocol?optionalThe network protocol. Defaults to SecurityRuleProtocol.Asterisk (any).priorityint?optionalThe rule priority (100-4096). If not specified, auto-increments from 100 by 100.namestring?optionalThe rule name. If not specified, auto-generated from parameters.Returns
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.Remarks
DenyInbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)Section titled DenyInbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)extensionIResourceBuilder<AzureSubnetResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureSubnetResource> DenyInbound( this IResourceBuilder<AzureSubnetResource> builder, string? port = null, string? from = null, string? to = null, SecurityRuleProtocol? protocol = null, int? priority = null, string? name = null) { // ... }}Parameters
builderIResourceBuilder<AzureSubnetResource>The subnet resource builder.portstring?optionalThe destination port range (e.g., "443", "80-443"). Defaults to "*" (any).fromstring?optionalThe source address prefix (e.g., "Internet", "VirtualNetwork", "10.0.0.0/8"). Defaults to "*" (any).tostring?optionalThe destination address prefix. Defaults to "*" (any).protocolSecurityRuleProtocol?optionalThe network protocol. Defaults to SecurityRuleProtocol.Asterisk (any).priorityint?optionalThe rule priority (100-4096). If not specified, auto-increments from 100 by 100.namestring?optionalThe rule name. If not specified, auto-generated from parameters.Returns
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.Remarks
DenyOutbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)Section titled DenyOutbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)extensionIResourceBuilder<AzureSubnetResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureSubnetResource> DenyOutbound( this IResourceBuilder<AzureSubnetResource> builder, string? port = null, string? from = null, string? to = null, SecurityRuleProtocol? protocol = null, int? priority = null, string? name = null) { // ... }}Parameters
builderIResourceBuilder<AzureSubnetResource>The subnet resource builder.portstring?optionalThe destination port range (e.g., "443", "80-443"). Defaults to "*" (any).fromstring?optionalThe source address prefix. Defaults to "*" (any).tostring?optionalThe destination address prefix (e.g., "Internet", "VirtualNetwork"). Defaults to "*" (any).protocolSecurityRuleProtocol?optionalThe network protocol. Defaults to SecurityRuleProtocol.Asterisk (any).priorityint?optionalThe rule priority (100-4096). If not specified, auto-increments from 100 by 100.namestring?optionalThe rule name. If not specified, auto-generated from parameters.Returns
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.Remarks
WithDelegatedSubnet(IResourceBuilder<T>, IResourceBuilder<AzureSubnetResource>)Section titled WithDelegatedSubnet(IResourceBuilder<T>, IResourceBuilder<AzureSubnetResource>)extensionIResourceBuilder<T>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<T> WithDelegatedSubnet<T>( this IResourceBuilder<T> builder, IResourceBuilder<AzureSubnetResource> subnet) { // ... }}Parameters
builderIResourceBuilder<T>The resource builder.subnetIResourceBuilder<AzureSubnetResource>The subnet to associate with the resource.Returns
IResourceBuilder<T>A reference to the ApplicationModel.IResourceBuilder`1.Remarks
Examples
This example configures an Azure Container App Environment to use a subnet:
var vnet = builder.AddAzureVirtualNetwork("vnet");var subnet = vnet.AddSubnet("aca-subnet", "10.0.0.0/23");
var env = builder.AddAzureContainerAppEnvironment("env") .WithDelegatedSubnet(subnet);WithNatGateway(IResourceBuilder<AzureSubnetResource>, IResourceBuilder<AzureNatGatewayResource>)Section titled WithNatGateway(IResourceBuilder<AzureSubnetResource>, IResourceBuilder<AzureNatGatewayResource>)extensionIResourceBuilder<AzureSubnetResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureSubnetResource> WithNatGateway( this IResourceBuilder<AzureSubnetResource> builder, IResourceBuilder<AzureNatGatewayResource> natGateway) { // ... }}Parameters
builderIResourceBuilder<AzureSubnetResource>The subnet resource builder.natGatewayIResourceBuilder<AzureNatGatewayResource>The NAT Gateway to associate with the subnet.Returns
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.Remarks
Examples
This example creates a subnet with an associated NAT Gateway:
var natGateway = builder.AddNatGateway("nat");var vnet = builder.AddAzureVirtualNetwork("vnet");var subnet = vnet.AddSubnet("aca-subnet", "10.0.0.0/23") .WithNatGateway(natGateway);WithNetworkSecurityGroup(IResourceBuilder<AzureSubnetResource>, IResourceBuilder<AzureNetworkSecurityGroupResource>)Section titled WithNetworkSecurityGroup(IResourceBuilder<AzureSubnetResource>, IResourceBuilder<AzureNetworkSecurityGroupResource>)extensionIResourceBuilder<AzureSubnetResource>public static class AzureVirtualNetworkExtensions{ public static IResourceBuilder<AzureSubnetResource> WithNetworkSecurityGroup( this IResourceBuilder<AzureSubnetResource> builder, IResourceBuilder<AzureNetworkSecurityGroupResource> nsg) { // ... }}Parameters
builderIResourceBuilder<AzureSubnetResource>The subnet resource builder.nsgIResourceBuilder<AzureNetworkSecurityGroupResource>The Network Security Group to associate with the subnet.Returns
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.Exceptions
InvalidOperationException Thrown when the subnet already has security rules added via shorthand methods ( AzureVirtualNetworkExtensions.AllowInbound, AzureVirtualNetworkExtensions.DenyInbound, AzureVirtualNetworkExtensions.AllowOutbound, AzureVirtualNetworkExtensions.DenyOutbound). Use either shorthand methods or an explicit NSG, not both. Examples
This example creates a subnet with an associated Network Security Group:
var nsg = builder.AddNetworkSecurityGroup("web-nsg");var vnet = builder.AddAzureVirtualNetwork("vnet");var subnet = vnet.AddSubnet("web-subnet", "10.0.1.0/24") .WithNetworkSecurityGroup(nsg);