Skip to content
DocsTry Aspire
DocsTry

AzureVirtualNetworkExtensions Methods

ClassMethods11 members
Provides extension methods for adding Azure Virtual Network resources to the application model.
AddAzureVirtualNetwork(IDistributedApplicationBuilder, string, string?)Section titled AddAzureVirtualNetwork(IDistributedApplicationBuilder, string, string?)extensionIResourceBuilder<AzureVirtualNetworkResource>
Adds an Azure Virtual Network resource to the application model.
public static class AzureVirtualNetworkExtensions
{
public static IResourceBuilder<AzureVirtualNetworkResource> AddAzureVirtualNetwork(
this IDistributedApplicationBuilder builder,
string name,
string? addressPrefix = null)
{
// ...
}
}
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".
IResourceBuilder<AzureVirtualNetworkResource>A reference to the ApplicationModel.IResourceBuilder`1.

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>
Adds an Azure Virtual Network resource to the application model with a parameterized address prefix.
public static class AzureVirtualNetworkExtensions
{
public static IResourceBuilder<AzureVirtualNetworkResource> AddAzureVirtualNetwork(
this IDistributedApplicationBuilder builder,
string name,
IResourceBuilder<ParameterResource> addressPrefix)
{
// ...
}
}
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").
IResourceBuilder<AzureVirtualNetworkResource>A reference to the ApplicationModel.IResourceBuilder`1.

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>
Adds an Azure Subnet to the Virtual Network.
public static class AzureVirtualNetworkExtensions
{
public static IResourceBuilder<AzureSubnetResource> AddSubnet(
this IResourceBuilder<AzureVirtualNetworkResource> builder,
string name,
string addressPrefix,
string? subnetName = null)
{
// ...
}
}
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.
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1.

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>
Adds an Azure Subnet to the Virtual Network with a parameterized address prefix.
public static class AzureVirtualNetworkExtensions
{
public static IResourceBuilder<AzureSubnetResource> AddSubnet(
this IResourceBuilder<AzureVirtualNetworkResource> builder,
string name,
IResourceBuilder<ParameterResource> addressPrefix,
string? subnetName = null)
{
// ...
}
}
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.
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1.

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>
Adds an inbound allow rule to the subnet's Network Security Group.
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)
{
// ...
}
}
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.
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
If no Network Security Group has been associated with the subnet, one is automatically created.

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>
Adds an outbound allow rule to the subnet's Network Security Group.
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)
{
// ...
}
}
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.
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
If no Network Security Group has been associated with the subnet, one is automatically created.
DenyInbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)Section titled DenyInbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)extensionIResourceBuilder<AzureSubnetResource>
Adds an inbound deny rule to the subnet's Network Security Group.
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)
{
// ...
}
}
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.
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
If no Network Security Group has been associated with the subnet, one is automatically created.
DenyOutbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)Section titled DenyOutbound(IResourceBuilder<AzureSubnetResource>, string?, string?, string?, SecurityRuleProtocol?, int?, string?)extensionIResourceBuilder<AzureSubnetResource>
Adds an outbound deny rule to the subnet's Network Security Group.
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)
{
// ...
}
}
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.
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
If no Network Security Group has been associated with the subnet, one is automatically created.
WithDelegatedSubnet(IResourceBuilder<T>, IResourceBuilder<AzureSubnetResource>)Section titled WithDelegatedSubnet(IResourceBuilder<T>, IResourceBuilder<AzureSubnetResource>)extensionIResourceBuilder<T>
Configures the resource to use the specified subnet with appropriate service delegation.
public static class AzureVirtualNetworkExtensions
{
public static IResourceBuilder<T> WithDelegatedSubnet<T>(
this IResourceBuilder<T> builder,
IResourceBuilder<AzureSubnetResource> subnet)
{
// ...
}
}
builderIResourceBuilder<T>The resource builder.
subnetIResourceBuilder<AzureSubnetResource>The subnet to associate with the resource.
IResourceBuilder<T>A reference to the ApplicationModel.IResourceBuilder`1.
This method automatically configures the subnet with the appropriate service delegation for the target resource type (e.g., "Microsoft.App/environments" for Azure Container Apps).

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>
Associates a NAT Gateway with the subnet.
public static class AzureVirtualNetworkExtensions
{
public static IResourceBuilder<AzureSubnetResource> WithNatGateway(
this IResourceBuilder<AzureSubnetResource> builder,
IResourceBuilder<AzureNatGatewayResource> natGateway)
{
// ...
}
}
builderIResourceBuilder<AzureSubnetResource>The subnet resource builder.
natGatewayIResourceBuilder<AzureNatGatewayResource>The NAT Gateway to associate with the subnet.
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
A NAT Gateway provides outbound internet connectivity for resources in the subnet. A subnet can have at most one NAT Gateway.

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>
Associates a Network Security Group with the subnet.
public static class AzureVirtualNetworkExtensions
{
public static IResourceBuilder<AzureSubnetResource> WithNetworkSecurityGroup(
this IResourceBuilder<AzureSubnetResource> builder,
IResourceBuilder<AzureNetworkSecurityGroupResource> nsg)
{
// ...
}
}
builderIResourceBuilder<AzureSubnetResource>The subnet resource builder.
nsgIResourceBuilder<AzureNetworkSecurityGroupResource>The Network Security Group to associate with the subnet.
IResourceBuilder<AzureSubnetResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
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.

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);