LoadBalancerArgs

data class LoadBalancerArgs(val backendAddressPools: Output<List<BackendAddressPoolArgs>>? = null, val extendedLocation: Output<ExtendedLocationArgs>? = null, val frontendIPConfigurations: Output<List<FrontendIPConfigurationArgs>>? = null, val id: Output<String>? = null, val inboundNatPools: Output<List<InboundNatPoolArgs>>? = null, val inboundNatRules: Output<List<InboundNatRuleArgs>>? = null, val loadBalancerName: Output<String>? = null, val loadBalancingRules: Output<List<LoadBalancingRuleArgs>>? = null, val location: Output<String>? = null, val outboundRules: Output<List<OutboundRuleArgs>>? = null, val probes: Output<List<ProbeArgs>>? = null, val resourceGroupName: Output<String>? = null, val sku: Output<LoadBalancerSkuArgs>? = null, val tags: Output<Map<String, String>>? = null) : ConvertibleToJava<LoadBalancerArgs>

LoadBalancer resource. Uses Azure REST API version 2023-02-01. In version 1.x of the Azure Native provider, it used API version 2020-11-01. Other available API versions: 2018-06-01, 2019-06-01, 2019-08-01, 2023-04-01, 2023-05-01, 2023-06-01, 2023-09-01, 2023-11-01, 2024-01-01, 2024-03-01, 2024-05-01.

Example Usage

Create load balancer

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var loadBalancer = new AzureNative.Network.LoadBalancer("loadBalancer", new()
{
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.BackendAddressPoolArgs
{
Name = "be-lb",
},
},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.FrontendIPConfigurationArgs
{
Name = "fe-lb",
Subnet = new AzureNative.Network.Inputs.SubnetArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb",
},
},
},
InboundNatPools = new[] {},
InboundNatRules = new[]
{
new AzureNative.Network.Inputs.InboundNatRuleArgs
{
BackendPort = 3389,
EnableFloatingIP = true,
EnableTcpReset = false,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 3389,
IdleTimeoutInMinutes = 15,
Name = "in-nat-rule",
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
LoadBalancerName = "lb",
LoadBalancingRules = new[]
{
new AzureNative.Network.Inputs.LoadBalancingRuleArgs
{
BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
},
BackendPort = 80,
EnableFloatingIP = true,
EnableTcpReset = false,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 80,
IdleTimeoutInMinutes = 15,
LoadDistribution = AzureNative.Network.LoadDistribution.Default,
Name = "rulelb",
Probe = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
},
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
Location = "eastus",
Probes = new[]
{
new AzureNative.Network.Inputs.ProbeArgs
{
IntervalInSeconds = 15,
Name = "probe-lb",
NumberOfProbes = 2,
Port = 80,
ProbeThreshold = 1,
Protocol = AzureNative.Network.ProbeProtocol.Http,
RequestPath = "healthcheck.aspx",
},
},
ResourceGroupName = "rg1",
});
});
package main
import (
network "github.com/pulumi/pulumi-azure-native-sdk/network/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := network.NewLoadBalancer(ctx, "loadBalancer", &network.LoadBalancerArgs{
BackendAddressPools: network.BackendAddressPoolArray{
&network.BackendAddressPoolArgs{
Name: pulumi.String("be-lb"),
},
},
FrontendIPConfigurations: network.FrontendIPConfigurationArray{
&network.FrontendIPConfigurationArgs{
Name: pulumi.String("fe-lb"),
Subnet: &network.SubnetTypeArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"),
},
},
},
InboundNatPools: network.InboundNatPoolArray{},
InboundNatRules: network.InboundNatRuleTypeArray{
&network.InboundNatRuleTypeArgs{
BackendPort: pulumi.Int(3389),
EnableFloatingIP: pulumi.Bool(true),
EnableTcpReset: pulumi.Bool(false),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(3389),
IdleTimeoutInMinutes: pulumi.Int(15),
Name: pulumi.String("in-nat-rule"),
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
LoadBalancerName: pulumi.String("lb"),
LoadBalancingRules: network.LoadBalancingRuleArray{
&network.LoadBalancingRuleArgs{
BackendAddressPool: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"),
},
BackendPort: pulumi.Int(80),
EnableFloatingIP: pulumi.Bool(true),
EnableTcpReset: pulumi.Bool(false),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(80),
IdleTimeoutInMinutes: pulumi.Int(15),
LoadDistribution: pulumi.String(network.LoadDistributionDefault),
Name: pulumi.String("rulelb"),
Probe: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"),
},
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
Location: pulumi.String("eastus"),
Probes: network.ProbeArray{
&network.ProbeArgs{
IntervalInSeconds: pulumi.Int(15),
Name: pulumi.String("probe-lb"),
NumberOfProbes: pulumi.Int(2),
Port: pulumi.Int(80),
ProbeThreshold: pulumi.Int(1),
Protocol: pulumi.String(network.ProbeProtocolHttp),
RequestPath: pulumi.String("healthcheck.aspx"),
},
},
ResourceGroupName: pulumi.String("rg1"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.network.LoadBalancer;
import com.pulumi.azurenative.network.LoadBalancerArgs;
import com.pulumi.azurenative.network.inputs.BackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.SubnetArgs;
import com.pulumi.azurenative.network.inputs.InboundNatRuleArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.network.inputs.ProbeArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var loadBalancer = new LoadBalancer("loadBalancer", LoadBalancerArgs.builder()
.backendAddressPools(BackendAddressPoolArgs.builder()
.name("be-lb")
.build())
.frontendIPConfigurations(FrontendIPConfigurationArgs.builder()
.name("fe-lb")
.subnet(SubnetArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb")
.build())
.build())
.inboundNatPools()
.inboundNatRules(InboundNatRuleArgs.builder()
.backendPort(3389)
.enableFloatingIP(true)
.enableTcpReset(false)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(3389)
.idleTimeoutInMinutes(15)
.name("in-nat-rule")
.protocol("Tcp")
.build())
.loadBalancerName("lb")
.loadBalancingRules(LoadBalancingRuleArgs.builder()
.backendAddressPool(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb")
.build())
.backendPort(80)
.enableFloatingIP(true)
.enableTcpReset(false)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(80)
.idleTimeoutInMinutes(15)
.loadDistribution("Default")
.name("rulelb")
.probe(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb")
.build())
.protocol("Tcp")
.build())
.location("eastus")
.probes(ProbeArgs.builder()
.intervalInSeconds(15)
.name("probe-lb")
.numberOfProbes(2)
.port(80)
.probeThreshold(1)
.protocol("Http")
.requestPath("healthcheck.aspx")
.build())
.resourceGroupName("rg1")
.build());
}
}

Create load balancer with Frontend IP in Zone 1

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var loadBalancer = new AzureNative.Network.LoadBalancer("loadBalancer", new()
{
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.BackendAddressPoolArgs
{
Name = "be-lb",
},
},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.FrontendIPConfigurationArgs
{
Name = "fe-lb",
Subnet = new AzureNative.Network.Inputs.SubnetArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb",
},
Zones = new[]
{
"1",
},
},
},
InboundNatPools = new[] {},
InboundNatRules = new[]
{
new AzureNative.Network.Inputs.InboundNatRuleArgs
{
BackendPort = 3389,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 3389,
IdleTimeoutInMinutes = 15,
Name = "in-nat-rule",
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
LoadBalancerName = "lb",
LoadBalancingRules = new[]
{
new AzureNative.Network.Inputs.LoadBalancingRuleArgs
{
BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
},
BackendPort = 80,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 80,
IdleTimeoutInMinutes = 15,
LoadDistribution = AzureNative.Network.LoadDistribution.Default,
Name = "rulelb",
Probe = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
},
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
Location = "eastus",
OutboundRules = new[] {},
Probes = new[]
{
new AzureNative.Network.Inputs.ProbeArgs
{
IntervalInSeconds = 15,
Name = "probe-lb",
NumberOfProbes = 2,
Port = 80,
ProbeThreshold = 1,
Protocol = AzureNative.Network.ProbeProtocol.Http,
RequestPath = "healthcheck.aspx",
},
},
ResourceGroupName = "rg1",
Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs
{
Name = AzureNative.Network.LoadBalancerSkuName.Standard,
},
});
});
package main
import (
network "github.com/pulumi/pulumi-azure-native-sdk/network/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := network.NewLoadBalancer(ctx, "loadBalancer", &network.LoadBalancerArgs{
BackendAddressPools: network.BackendAddressPoolArray{
&network.BackendAddressPoolArgs{
Name: pulumi.String("be-lb"),
},
},
FrontendIPConfigurations: network.FrontendIPConfigurationArray{
&network.FrontendIPConfigurationArgs{
Name: pulumi.String("fe-lb"),
Subnet: &network.SubnetTypeArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"),
},
Zones: pulumi.StringArray{
pulumi.String("1"),
},
},
},
InboundNatPools: network.InboundNatPoolArray{},
InboundNatRules: network.InboundNatRuleTypeArray{
&network.InboundNatRuleTypeArgs{
BackendPort: pulumi.Int(3389),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(3389),
IdleTimeoutInMinutes: pulumi.Int(15),
Name: pulumi.String("in-nat-rule"),
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
LoadBalancerName: pulumi.String("lb"),
LoadBalancingRules: network.LoadBalancingRuleArray{
&network.LoadBalancingRuleArgs{
BackendAddressPool: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"),
},
BackendPort: pulumi.Int(80),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(80),
IdleTimeoutInMinutes: pulumi.Int(15),
LoadDistribution: pulumi.String(network.LoadDistributionDefault),
Name: pulumi.String("rulelb"),
Probe: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"),
},
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
Location: pulumi.String("eastus"),
OutboundRules: network.OutboundRuleArray{},
Probes: network.ProbeArray{
&network.ProbeArgs{
IntervalInSeconds: pulumi.Int(15),
Name: pulumi.String("probe-lb"),
NumberOfProbes: pulumi.Int(2),
Port: pulumi.Int(80),
ProbeThreshold: pulumi.Int(1),
Protocol: pulumi.String(network.ProbeProtocolHttp),
RequestPath: pulumi.String("healthcheck.aspx"),
},
},
ResourceGroupName: pulumi.String("rg1"),
Sku: &network.LoadBalancerSkuArgs{
Name: pulumi.String(network.LoadBalancerSkuNameStandard),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.network.LoadBalancer;
import com.pulumi.azurenative.network.LoadBalancerArgs;
import com.pulumi.azurenative.network.inputs.BackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.SubnetArgs;
import com.pulumi.azurenative.network.inputs.InboundNatRuleArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.network.inputs.ProbeArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancerSkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var loadBalancer = new LoadBalancer("loadBalancer", LoadBalancerArgs.builder()
.backendAddressPools(BackendAddressPoolArgs.builder()
.name("be-lb")
.build())
.frontendIPConfigurations(FrontendIPConfigurationArgs.builder()
.name("fe-lb")
.subnet(SubnetArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb")
.build())
.zones("1")
.build())
.inboundNatPools()
.inboundNatRules(InboundNatRuleArgs.builder()
.backendPort(3389)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(3389)
.idleTimeoutInMinutes(15)
.name("in-nat-rule")
.protocol("Tcp")
.build())
.loadBalancerName("lb")
.loadBalancingRules(LoadBalancingRuleArgs.builder()
.backendAddressPool(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb")
.build())
.backendPort(80)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(80)
.idleTimeoutInMinutes(15)
.loadDistribution("Default")
.name("rulelb")
.probe(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb")
.build())
.protocol("Tcp")
.build())
.location("eastus")
.outboundRules()
.probes(ProbeArgs.builder()
.intervalInSeconds(15)
.name("probe-lb")
.numberOfProbes(2)
.port(80)
.probeThreshold(1)
.protocol("Http")
.requestPath("healthcheck.aspx")
.build())
.resourceGroupName("rg1")
.sku(LoadBalancerSkuArgs.builder()
.name("Standard")
.build())
.build());
}
}

Create load balancer with Gateway Load Balancer Consumer configured

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var loadBalancer = new AzureNative.Network.LoadBalancer("loadBalancer", new()
{
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.BackendAddressPoolArgs
{
Name = "be-lb",
},
},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.FrontendIPConfigurationArgs
{
GatewayLoadBalancer = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider",
},
Name = "fe-lb",
Subnet = new AzureNative.Network.Inputs.SubnetArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb",
},
},
},
InboundNatPools = new[] {},
InboundNatRules = new[]
{
new AzureNative.Network.Inputs.InboundNatRuleArgs
{
BackendPort = 3389,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 3389,
IdleTimeoutInMinutes = 15,
Name = "in-nat-rule",
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
LoadBalancerName = "lb",
LoadBalancingRules = new[]
{
new AzureNative.Network.Inputs.LoadBalancingRuleArgs
{
BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
},
BackendPort = 80,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 80,
IdleTimeoutInMinutes = 15,
LoadDistribution = AzureNative.Network.LoadDistribution.Default,
Name = "rulelb",
Probe = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
},
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
Location = "eastus",
OutboundRules = new[] {},
Probes = new[]
{
new AzureNative.Network.Inputs.ProbeArgs
{
IntervalInSeconds = 15,
Name = "probe-lb",
NumberOfProbes = 2,
Port = 80,
ProbeThreshold = 1,
Protocol = AzureNative.Network.ProbeProtocol.Http,
RequestPath = "healthcheck.aspx",
},
},
ResourceGroupName = "rg1",
Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs
{
Name = AzureNative.Network.LoadBalancerSkuName.Standard,
},
});
});
package main
import (
network "github.com/pulumi/pulumi-azure-native-sdk/network/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := network.NewLoadBalancer(ctx, "loadBalancer", &network.LoadBalancerArgs{
BackendAddressPools: network.BackendAddressPoolArray{
&network.BackendAddressPoolArgs{
Name: pulumi.String("be-lb"),
},
},
FrontendIPConfigurations: network.FrontendIPConfigurationArray{
&network.FrontendIPConfigurationArgs{
GatewayLoadBalancer: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider"),
},
Name: pulumi.String("fe-lb"),
Subnet: &network.SubnetTypeArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"),
},
},
},
InboundNatPools: network.InboundNatPoolArray{},
InboundNatRules: network.InboundNatRuleTypeArray{
&network.InboundNatRuleTypeArgs{
BackendPort: pulumi.Int(3389),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(3389),
IdleTimeoutInMinutes: pulumi.Int(15),
Name: pulumi.String("in-nat-rule"),
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
LoadBalancerName: pulumi.String("lb"),
LoadBalancingRules: network.LoadBalancingRuleArray{
&network.LoadBalancingRuleArgs{
BackendAddressPool: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"),
},
BackendPort: pulumi.Int(80),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(80),
IdleTimeoutInMinutes: pulumi.Int(15),
LoadDistribution: pulumi.String(network.LoadDistributionDefault),
Name: pulumi.String("rulelb"),
Probe: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"),
},
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
Location: pulumi.String("eastus"),
OutboundRules: network.OutboundRuleArray{},
Probes: network.ProbeArray{
&network.ProbeArgs{
IntervalInSeconds: pulumi.Int(15),
Name: pulumi.String("probe-lb"),
NumberOfProbes: pulumi.Int(2),
Port: pulumi.Int(80),
ProbeThreshold: pulumi.Int(1),
Protocol: pulumi.String(network.ProbeProtocolHttp),
RequestPath: pulumi.String("healthcheck.aspx"),
},
},
ResourceGroupName: pulumi.String("rg1"),
Sku: &network.LoadBalancerSkuArgs{
Name: pulumi.String(network.LoadBalancerSkuNameStandard),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.network.LoadBalancer;
import com.pulumi.azurenative.network.LoadBalancerArgs;
import com.pulumi.azurenative.network.inputs.BackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.azurenative.network.inputs.SubnetArgs;
import com.pulumi.azurenative.network.inputs.InboundNatRuleArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.network.inputs.ProbeArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancerSkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var loadBalancer = new LoadBalancer("loadBalancer", LoadBalancerArgs.builder()
.backendAddressPools(BackendAddressPoolArgs.builder()
.name("be-lb")
.build())
.frontendIPConfigurations(FrontendIPConfigurationArgs.builder()
.gatewayLoadBalancer(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb-provider")
.build())
.name("fe-lb")
.subnet(SubnetArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb")
.build())
.build())
.inboundNatPools()
.inboundNatRules(InboundNatRuleArgs.builder()
.backendPort(3389)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(3389)
.idleTimeoutInMinutes(15)
.name("in-nat-rule")
.protocol("Tcp")
.build())
.loadBalancerName("lb")
.loadBalancingRules(LoadBalancingRuleArgs.builder()
.backendAddressPool(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb")
.build())
.backendPort(80)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(80)
.idleTimeoutInMinutes(15)
.loadDistribution("Default")
.name("rulelb")
.probe(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb")
.build())
.protocol("Tcp")
.build())
.location("eastus")
.outboundRules()
.probes(ProbeArgs.builder()
.intervalInSeconds(15)
.name("probe-lb")
.numberOfProbes(2)
.port(80)
.probeThreshold(1)
.protocol("Http")
.requestPath("healthcheck.aspx")
.build())
.resourceGroupName("rg1")
.sku(LoadBalancerSkuArgs.builder()
.name("Standard")
.build())
.build());
}
}

Create load balancer with Gateway Load Balancer Provider configured with one Backend Pool

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var loadBalancer = new AzureNative.Network.LoadBalancer("loadBalancer", new()
{
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.BackendAddressPoolArgs
{
Name = "be-lb",
TunnelInterfaces = new[]
{
new AzureNative.Network.Inputs.GatewayLoadBalancerTunnelInterfaceArgs
{
Identifier = 900,
Port = 15000,
Protocol = AzureNative.Network.GatewayLoadBalancerTunnelProtocol.VXLAN,
Type = AzureNative.Network.GatewayLoadBalancerTunnelInterfaceType.Internal,
},
new AzureNative.Network.Inputs.GatewayLoadBalancerTunnelInterfaceArgs
{
Identifier = 901,
Port = 15001,
Protocol = AzureNative.Network.GatewayLoadBalancerTunnelProtocol.VXLAN,
Type = AzureNative.Network.GatewayLoadBalancerTunnelInterfaceType.Internal,
},
},
},
},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.FrontendIPConfigurationArgs
{
Name = "fe-lb",
Subnet = new AzureNative.Network.Inputs.SubnetArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb",
},
},
},
InboundNatPools = new[] {},
LoadBalancerName = "lb",
LoadBalancingRules = new[]
{
new AzureNative.Network.Inputs.LoadBalancingRuleArgs
{
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
},
},
BackendPort = 0,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 0,
IdleTimeoutInMinutes = 15,
LoadDistribution = AzureNative.Network.LoadDistribution.Default,
Name = "rulelb",
Probe = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
},
Protocol = AzureNative.Network.TransportProtocol.All,
},
},
Location = "eastus",
OutboundRules = new[] {},
Probes = new[]
{
new AzureNative.Network.Inputs.ProbeArgs
{
IntervalInSeconds = 15,
Name = "probe-lb",
NumberOfProbes = 2,
Port = 80,
ProbeThreshold = 1,
Protocol = AzureNative.Network.ProbeProtocol.Http,
RequestPath = "healthcheck.aspx",
},
},
ResourceGroupName = "rg1",
Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs
{
Name = "Premium",
},
});
});
package main
import (
network "github.com/pulumi/pulumi-azure-native-sdk/network/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := network.NewLoadBalancer(ctx, "loadBalancer", &network.LoadBalancerArgs{
BackendAddressPools: network.BackendAddressPoolArray{
&network.BackendAddressPoolArgs{
Name: pulumi.String("be-lb"),
TunnelInterfaces: network.GatewayLoadBalancerTunnelInterfaceArray{
&network.GatewayLoadBalancerTunnelInterfaceArgs{
Identifier: pulumi.Int(900),
Port: pulumi.Int(15000),
Protocol: pulumi.String(network.GatewayLoadBalancerTunnelProtocolVXLAN),
Type: pulumi.String(network.GatewayLoadBalancerTunnelInterfaceTypeInternal),
},
&network.GatewayLoadBalancerTunnelInterfaceArgs{
Identifier: pulumi.Int(901),
Port: pulumi.Int(15001),
Protocol: pulumi.String(network.GatewayLoadBalancerTunnelProtocolVXLAN),
Type: pulumi.String(network.GatewayLoadBalancerTunnelInterfaceTypeInternal),
},
},
},
},
FrontendIPConfigurations: network.FrontendIPConfigurationArray{
&network.FrontendIPConfigurationArgs{
Name: pulumi.String("fe-lb"),
Subnet: &network.SubnetTypeArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"),
},
},
},
InboundNatPools: network.InboundNatPoolArray{},
LoadBalancerName: pulumi.String("lb"),
LoadBalancingRules: network.LoadBalancingRuleArray{
&network.LoadBalancingRuleArgs{
BackendAddressPools: network.SubResourceArray{
&network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"),
},
},
BackendPort: pulumi.Int(0),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(0),
IdleTimeoutInMinutes: pulumi.Int(15),
LoadDistribution: pulumi.String(network.LoadDistributionDefault),
Name: pulumi.String("rulelb"),
Probe: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"),
},
Protocol: pulumi.String(network.TransportProtocolAll),
},
},
Location: pulumi.String("eastus"),
OutboundRules: network.OutboundRuleArray{},
Probes: network.ProbeArray{
&network.ProbeArgs{
IntervalInSeconds: pulumi.Int(15),
Name: pulumi.String("probe-lb"),
NumberOfProbes: pulumi.Int(2),
Port: pulumi.Int(80),
ProbeThreshold: pulumi.Int(1),
Protocol: pulumi.String(network.ProbeProtocolHttp),
RequestPath: pulumi.String("healthcheck.aspx"),
},
},
ResourceGroupName: pulumi.String("rg1"),
Sku: &network.LoadBalancerSkuArgs{
Name: pulumi.String("Premium"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.network.LoadBalancer;
import com.pulumi.azurenative.network.LoadBalancerArgs;
import com.pulumi.azurenative.network.inputs.BackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.SubnetArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.azurenative.network.inputs.ProbeArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancerSkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var loadBalancer = new LoadBalancer("loadBalancer", LoadBalancerArgs.builder()
.backendAddressPools(BackendAddressPoolArgs.builder()
.name("be-lb")
.tunnelInterfaces(
GatewayLoadBalancerTunnelInterfaceArgs.builder()
.identifier(900)
.port(15000)
.protocol("VXLAN")
.type("Internal")
.build(),
GatewayLoadBalancerTunnelInterfaceArgs.builder()
.identifier(901)
.port(15001)
.protocol("VXLAN")
.type("Internal")
.build())
.build())
.frontendIPConfigurations(FrontendIPConfigurationArgs.builder()
.name("fe-lb")
.subnet(SubnetArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb")
.build())
.build())
.inboundNatPools()
.loadBalancerName("lb")
.loadBalancingRules(LoadBalancingRuleArgs.builder()
.backendAddressPools(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb")
.build())
.backendPort(0)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(0)
.idleTimeoutInMinutes(15)
.loadDistribution("Default")
.name("rulelb")
.probe(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb")
.build())
.protocol("All")
.build())
.location("eastus")
.outboundRules()
.probes(ProbeArgs.builder()
.intervalInSeconds(15)
.name("probe-lb")
.numberOfProbes(2)
.port(80)
.probeThreshold(1)
.protocol("Http")
.requestPath("healthcheck.aspx")
.build())
.resourceGroupName("rg1")
.sku(LoadBalancerSkuArgs.builder()
.name("Premium")
.build())
.build());
}
}

Create load balancer with Gateway Load Balancer Provider configured with two Backend Pool

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var loadBalancer = new AzureNative.Network.LoadBalancer("loadBalancer", new()
{
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.BackendAddressPoolArgs
{
Name = "be-lb1",
},
new AzureNative.Network.Inputs.BackendAddressPoolArgs
{
Name = "be-lb2",
},
},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.FrontendIPConfigurationArgs
{
Name = "fe-lb",
Subnet = new AzureNative.Network.Inputs.SubnetArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb",
},
},
},
InboundNatPools = new[] {},
LoadBalancerName = "lb",
LoadBalancingRules = new[]
{
new AzureNative.Network.Inputs.LoadBalancingRuleArgs
{
BackendAddressPool = null,
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1",
},
new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2",
},
},
BackendPort = 0,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 0,
IdleTimeoutInMinutes = 15,
LoadDistribution = AzureNative.Network.LoadDistribution.Default,
Name = "rulelb",
Probe = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
},
Protocol = AzureNative.Network.TransportProtocol.All,
},
},
Location = "eastus",
OutboundRules = new[] {},
Probes = new[]
{
new AzureNative.Network.Inputs.ProbeArgs
{
IntervalInSeconds = 15,
Name = "probe-lb",
NumberOfProbes = 2,
Port = 80,
ProbeThreshold = 1,
Protocol = AzureNative.Network.ProbeProtocol.Http,
RequestPath = "healthcheck.aspx",
},
},
ResourceGroupName = "rg1",
Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs
{
Name = "Premium",
},
});
});
package main
import (
network "github.com/pulumi/pulumi-azure-native-sdk/network/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := network.NewLoadBalancer(ctx, "loadBalancer", &network.LoadBalancerArgs{
BackendAddressPools: network.BackendAddressPoolArray{
&network.BackendAddressPoolArgs{
Name: pulumi.String("be-lb1"),
},
&network.BackendAddressPoolArgs{
Name: pulumi.String("be-lb2"),
},
},
FrontendIPConfigurations: network.FrontendIPConfigurationArray{
&network.FrontendIPConfigurationArgs{
Name: pulumi.String("fe-lb"),
Subnet: &network.SubnetTypeArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"),
},
},
},
InboundNatPools: network.InboundNatPoolArray{},
LoadBalancerName: pulumi.String("lb"),
LoadBalancingRules: network.LoadBalancingRuleArray{
&network.LoadBalancingRuleArgs{
BackendAddressPool: &network.SubResourceArgs{},
BackendAddressPools: network.SubResourceArray{
&network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1"),
},
&network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2"),
},
},
BackendPort: pulumi.Int(0),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(0),
IdleTimeoutInMinutes: pulumi.Int(15),
LoadDistribution: pulumi.String(network.LoadDistributionDefault),
Name: pulumi.String("rulelb"),
Probe: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"),
},
Protocol: pulumi.String(network.TransportProtocolAll),
},
},
Location: pulumi.String("eastus"),
OutboundRules: network.OutboundRuleArray{},
Probes: network.ProbeArray{
&network.ProbeArgs{
IntervalInSeconds: pulumi.Int(15),
Name: pulumi.String("probe-lb"),
NumberOfProbes: pulumi.Int(2),
Port: pulumi.Int(80),
ProbeThreshold: pulumi.Int(1),
Protocol: pulumi.String(network.ProbeProtocolHttp),
RequestPath: pulumi.String("healthcheck.aspx"),
},
},
ResourceGroupName: pulumi.String("rg1"),
Sku: &network.LoadBalancerSkuArgs{
Name: pulumi.String("Premium"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.network.LoadBalancer;
import com.pulumi.azurenative.network.LoadBalancerArgs;
import com.pulumi.azurenative.network.inputs.BackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.SubnetArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.azurenative.network.inputs.ProbeArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancerSkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var loadBalancer = new LoadBalancer("loadBalancer", LoadBalancerArgs.builder()
.backendAddressPools(
BackendAddressPoolArgs.builder()
.name("be-lb1")
.build(),
BackendAddressPoolArgs.builder()
.name("be-lb2")
.build())
.frontendIPConfigurations(FrontendIPConfigurationArgs.builder()
.name("fe-lb")
.subnet(SubnetArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb")
.build())
.build())
.inboundNatPools()
.loadBalancerName("lb")
.loadBalancingRules(LoadBalancingRuleArgs.builder()
.backendAddressPool()
.backendAddressPools(
SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb1")
.build(),
SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb2")
.build())
.backendPort(0)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(0)
.idleTimeoutInMinutes(15)
.loadDistribution("Default")
.name("rulelb")
.probe(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb")
.build())
.protocol("All")
.build())
.location("eastus")
.outboundRules()
.probes(ProbeArgs.builder()
.intervalInSeconds(15)
.name("probe-lb")
.numberOfProbes(2)
.port(80)
.probeThreshold(1)
.protocol("Http")
.requestPath("healthcheck.aspx")
.build())
.resourceGroupName("rg1")
.sku(LoadBalancerSkuArgs.builder()
.name("Premium")
.build())
.build());
}
}

Create load balancer with Global Tier and one regional load balancer in its backend pool

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var loadBalancer = new AzureNative.Network.LoadBalancer("loadBalancer", new()
{
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.BackendAddressPoolArgs
{
LoadBalancerBackendAddresses = new[]
{
new AzureNative.Network.Inputs.LoadBalancerBackendAddressArgs
{
LoadBalancerFrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb",
},
Name = "regional-lb1-address",
},
},
Name = "be-lb",
},
},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.FrontendIPConfigurationArgs
{
Name = "fe-lb",
Subnet = new AzureNative.Network.Inputs.SubnetArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb",
},
},
},
LoadBalancerName = "lb",
LoadBalancingRules = new[]
{
new AzureNative.Network.Inputs.LoadBalancingRuleArgs
{
BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
},
BackendPort = 80,
EnableFloatingIP = false,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 80,
IdleTimeoutInMinutes = 15,
LoadDistribution = AzureNative.Network.LoadDistribution.Default,
Name = "rulelb",
Probe = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
},
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
Location = "eastus",
Probes = new[]
{
new AzureNative.Network.Inputs.ProbeArgs
{
IntervalInSeconds = 15,
Name = "probe-lb",
NumberOfProbes = 2,
Port = 80,
ProbeThreshold = 1,
Protocol = AzureNative.Network.ProbeProtocol.Http,
RequestPath = "healthcheck.aspx",
},
},
ResourceGroupName = "rg1",
Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs
{
Name = AzureNative.Network.LoadBalancerSkuName.Standard,
Tier = AzureNative.Network.LoadBalancerSkuTier.Global,
},
});
});
package main
import (
network "github.com/pulumi/pulumi-azure-native-sdk/network/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := network.NewLoadBalancer(ctx, "loadBalancer", &network.LoadBalancerArgs{
BackendAddressPools: network.BackendAddressPoolArray{
&network.BackendAddressPoolArgs{
LoadBalancerBackendAddresses: network.LoadBalancerBackendAddressArray{
&network.LoadBalancerBackendAddressArgs{
LoadBalancerFrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb"),
},
Name: pulumi.String("regional-lb1-address"),
},
},
Name: pulumi.String("be-lb"),
},
},
FrontendIPConfigurations: network.FrontendIPConfigurationArray{
&network.FrontendIPConfigurationArgs{
Name: pulumi.String("fe-lb"),
Subnet: &network.SubnetTypeArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"),
},
},
},
LoadBalancerName: pulumi.String("lb"),
LoadBalancingRules: network.LoadBalancingRuleArray{
&network.LoadBalancingRuleArgs{
BackendAddressPool: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"),
},
BackendPort: pulumi.Int(80),
EnableFloatingIP: pulumi.Bool(false),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(80),
IdleTimeoutInMinutes: pulumi.Int(15),
LoadDistribution: pulumi.String(network.LoadDistributionDefault),
Name: pulumi.String("rulelb"),
Probe: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"),
},
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
Location: pulumi.String("eastus"),
Probes: network.ProbeArray{
&network.ProbeArgs{
IntervalInSeconds: pulumi.Int(15),
Name: pulumi.String("probe-lb"),
NumberOfProbes: pulumi.Int(2),
Port: pulumi.Int(80),
ProbeThreshold: pulumi.Int(1),
Protocol: pulumi.String(network.ProbeProtocolHttp),
RequestPath: pulumi.String("healthcheck.aspx"),
},
},
ResourceGroupName: pulumi.String("rg1"),
Sku: &network.LoadBalancerSkuArgs{
Name: pulumi.String(network.LoadBalancerSkuNameStandard),
Tier: pulumi.String(network.LoadBalancerSkuTierGlobal),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.network.LoadBalancer;
import com.pulumi.azurenative.network.LoadBalancerArgs;
import com.pulumi.azurenative.network.inputs.BackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.SubnetArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.azurenative.network.inputs.ProbeArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancerSkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var loadBalancer = new LoadBalancer("loadBalancer", LoadBalancerArgs.builder()
.backendAddressPools(BackendAddressPoolArgs.builder()
.loadBalancerBackendAddresses(LoadBalancerBackendAddressArgs.builder()
.loadBalancerFrontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/regional-lb-rg1/providers/Microsoft.Network/loadBalancers/regional-lb/frontendIPConfigurations/fe-rlb")
.build())
.name("regional-lb1-address")
.build())
.name("be-lb")
.build())
.frontendIPConfigurations(FrontendIPConfigurationArgs.builder()
.name("fe-lb")
.subnet(SubnetArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb")
.build())
.build())
.loadBalancerName("lb")
.loadBalancingRules(LoadBalancingRuleArgs.builder()
.backendAddressPool(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb")
.build())
.backendPort(80)
.enableFloatingIP(false)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(80)
.idleTimeoutInMinutes(15)
.loadDistribution("Default")
.name("rulelb")
.probe(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb")
.build())
.protocol("Tcp")
.build())
.location("eastus")
.probes(ProbeArgs.builder()
.intervalInSeconds(15)
.name("probe-lb")
.numberOfProbes(2)
.port(80)
.probeThreshold(1)
.protocol("Http")
.requestPath("healthcheck.aspx")
.build())
.resourceGroupName("rg1")
.sku(LoadBalancerSkuArgs.builder()
.name("Standard")
.tier("Global")
.build())
.build());
}
}

Create load balancer with Standard SKU

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var loadBalancer = new AzureNative.Network.LoadBalancer("loadBalancer", new()
{
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.BackendAddressPoolArgs
{
Name = "be-lb",
},
},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.FrontendIPConfigurationArgs
{
Name = "fe-lb",
Subnet = new AzureNative.Network.Inputs.SubnetArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb",
},
},
},
InboundNatPools = new[] {},
InboundNatRules = new[]
{
new AzureNative.Network.Inputs.InboundNatRuleArgs
{
BackendPort = 3389,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 3389,
IdleTimeoutInMinutes = 15,
Name = "in-nat-rule",
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
LoadBalancerName = "lb",
LoadBalancingRules = new[]
{
new AzureNative.Network.Inputs.LoadBalancingRuleArgs
{
BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
},
BackendPort = 80,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 80,
IdleTimeoutInMinutes = 15,
LoadDistribution = AzureNative.Network.LoadDistribution.Default,
Name = "rulelb",
Probe = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
},
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
Location = "eastus",
OutboundRules = new[] {},
Probes = new[]
{
new AzureNative.Network.Inputs.ProbeArgs
{
IntervalInSeconds = 15,
Name = "probe-lb",
NumberOfProbes = 2,
Port = 80,
ProbeThreshold = 1,
Protocol = AzureNative.Network.ProbeProtocol.Http,
RequestPath = "healthcheck.aspx",
},
},
ResourceGroupName = "rg1",
Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs
{
Name = AzureNative.Network.LoadBalancerSkuName.Standard,
},
});
});
package main
import (
network "github.com/pulumi/pulumi-azure-native-sdk/network/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := network.NewLoadBalancer(ctx, "loadBalancer", &network.LoadBalancerArgs{
BackendAddressPools: network.BackendAddressPoolArray{
&network.BackendAddressPoolArgs{
Name: pulumi.String("be-lb"),
},
},
FrontendIPConfigurations: network.FrontendIPConfigurationArray{
&network.FrontendIPConfigurationArgs{
Name: pulumi.String("fe-lb"),
Subnet: &network.SubnetTypeArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb"),
},
},
},
InboundNatPools: network.InboundNatPoolArray{},
InboundNatRules: network.InboundNatRuleTypeArray{
&network.InboundNatRuleTypeArgs{
BackendPort: pulumi.Int(3389),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(3389),
IdleTimeoutInMinutes: pulumi.Int(15),
Name: pulumi.String("in-nat-rule"),
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
LoadBalancerName: pulumi.String("lb"),
LoadBalancingRules: network.LoadBalancingRuleArray{
&network.LoadBalancingRuleArgs{
BackendAddressPool: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"),
},
BackendPort: pulumi.Int(80),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(80),
IdleTimeoutInMinutes: pulumi.Int(15),
LoadDistribution: pulumi.String(network.LoadDistributionDefault),
Name: pulumi.String("rulelb"),
Probe: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"),
},
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
Location: pulumi.String("eastus"),
OutboundRules: network.OutboundRuleArray{},
Probes: network.ProbeArray{
&network.ProbeArgs{
IntervalInSeconds: pulumi.Int(15),
Name: pulumi.String("probe-lb"),
NumberOfProbes: pulumi.Int(2),
Port: pulumi.Int(80),
ProbeThreshold: pulumi.Int(1),
Protocol: pulumi.String(network.ProbeProtocolHttp),
RequestPath: pulumi.String("healthcheck.aspx"),
},
},
ResourceGroupName: pulumi.String("rg1"),
Sku: &network.LoadBalancerSkuArgs{
Name: pulumi.String(network.LoadBalancerSkuNameStandard),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.network.LoadBalancer;
import com.pulumi.azurenative.network.LoadBalancerArgs;
import com.pulumi.azurenative.network.inputs.BackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.SubnetArgs;
import com.pulumi.azurenative.network.inputs.InboundNatRuleArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.network.inputs.ProbeArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancerSkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var loadBalancer = new LoadBalancer("loadBalancer", LoadBalancerArgs.builder()
.backendAddressPools(BackendAddressPoolArgs.builder()
.name("be-lb")
.build())
.frontendIPConfigurations(FrontendIPConfigurationArgs.builder()
.name("fe-lb")
.subnet(SubnetArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnetlb/subnets/subnetlb")
.build())
.build())
.inboundNatPools()
.inboundNatRules(InboundNatRuleArgs.builder()
.backendPort(3389)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(3389)
.idleTimeoutInMinutes(15)
.name("in-nat-rule")
.protocol("Tcp")
.build())
.loadBalancerName("lb")
.loadBalancingRules(LoadBalancingRuleArgs.builder()
.backendAddressPool(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb")
.build())
.backendPort(80)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(80)
.idleTimeoutInMinutes(15)
.loadDistribution("Default")
.name("rulelb")
.probe(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb")
.build())
.protocol("Tcp")
.build())
.location("eastus")
.outboundRules()
.probes(ProbeArgs.builder()
.intervalInSeconds(15)
.name("probe-lb")
.numberOfProbes(2)
.port(80)
.probeThreshold(1)
.protocol("Http")
.requestPath("healthcheck.aspx")
.build())
.resourceGroupName("rg1")
.sku(LoadBalancerSkuArgs.builder()
.name("Standard")
.build())
.build());
}
}

Create load balancer with inbound nat pool

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var loadBalancer = new AzureNative.Network.LoadBalancer("loadBalancer", new()
{
BackendAddressPools = new[] {},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.FrontendIPConfigurationArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test",
Name = "test",
PrivateIPAllocationMethod = AzureNative.Network.IPAllocationMethod.Dynamic,
Subnet = new AzureNative.Network.Inputs.SubnetArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet",
},
Zones = new() { },
},
},
InboundNatPools = new[]
{
new AzureNative.Network.Inputs.InboundNatPoolArgs
{
BackendPort = 8888,
EnableFloatingIP = true,
EnableTcpReset = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test",
},
FrontendPortRangeEnd = 8085,
FrontendPortRangeStart = 8080,
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test",
IdleTimeoutInMinutes = 10,
Name = "test",
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
InboundNatRules = new[] {},
LoadBalancerName = "lb",
LoadBalancingRules = new[] {},
Location = "eastus",
OutboundRules = new[] {},
Probes = new[] {},
ResourceGroupName = "rg1",
Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs
{
Name = AzureNative.Network.LoadBalancerSkuName.Standard,
},
});
});
package main
import (
network "github.com/pulumi/pulumi-azure-native-sdk/network/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := network.NewLoadBalancer(ctx, "loadBalancer", &network.LoadBalancerArgs{
BackendAddressPools: network.BackendAddressPoolArray{},
FrontendIPConfigurations: network.FrontendIPConfigurationArray{
&network.FrontendIPConfigurationArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test"),
Name: pulumi.String("test"),
PrivateIPAllocationMethod: pulumi.String(network.IPAllocationMethodDynamic),
Subnet: &network.SubnetTypeArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet"),
},
Zones: pulumi.StringArray{},
},
},
InboundNatPools: network.InboundNatPoolArray{
&network.InboundNatPoolArgs{
BackendPort: pulumi.Int(8888),
EnableFloatingIP: pulumi.Bool(true),
EnableTcpReset: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test"),
},
FrontendPortRangeEnd: pulumi.Int(8085),
FrontendPortRangeStart: pulumi.Int(8080),
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test"),
IdleTimeoutInMinutes: pulumi.Int(10),
Name: pulumi.String("test"),
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
InboundNatRules: network.InboundNatRuleTypeArray{},
LoadBalancerName: pulumi.String("lb"),
LoadBalancingRules: network.LoadBalancingRuleArray{},
Location: pulumi.String("eastus"),
OutboundRules: network.OutboundRuleArray{},
Probes: network.ProbeArray{},
ResourceGroupName: pulumi.String("rg1"),
Sku: &network.LoadBalancerSkuArgs{
Name: pulumi.String(network.LoadBalancerSkuNameStandard),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.network.LoadBalancer;
import com.pulumi.azurenative.network.LoadBalancerArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.SubnetArgs;
import com.pulumi.azurenative.network.inputs.InboundNatPoolArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancerSkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var loadBalancer = new LoadBalancer("loadBalancer", LoadBalancerArgs.builder()
.backendAddressPools()
.frontendIPConfigurations(FrontendIPConfigurationArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test")
.name("test")
.privateIPAllocationMethod("Dynamic")
.subnet(SubnetArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/lbvnet/subnets/lbsubnet")
.build())
.zones()
.build())
.inboundNatPools(InboundNatPoolArgs.builder()
.backendPort(8888)
.enableFloatingIP(true)
.enableTcpReset(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/test")
.build())
.frontendPortRangeEnd(8085)
.frontendPortRangeStart(8080)
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/inboundNatPools/test")
.idleTimeoutInMinutes(10)
.name("test")
.protocol("Tcp")
.build())
.inboundNatRules()
.loadBalancerName("lb")
.loadBalancingRules()
.location("eastus")
.outboundRules()
.probes()
.resourceGroupName("rg1")
.sku(LoadBalancerSkuArgs.builder()
.name("Standard")
.build())
.build());
}
}

Create load balancer with outbound rules

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var loadBalancer = new AzureNative.Network.LoadBalancer("loadBalancer", new()
{
BackendAddressPools = new[]
{
new AzureNative.Network.Inputs.BackendAddressPoolArgs
{
Name = "be-lb",
},
},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.FrontendIPConfigurationArgs
{
Name = "fe-lb",
PublicIPAddress = new AzureNative.Network.Inputs.PublicIPAddressArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip",
},
},
},
InboundNatPools = new[] {},
InboundNatRules = new[]
{
new AzureNative.Network.Inputs.InboundNatRuleArgs
{
BackendPort = 3389,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 3389,
IdleTimeoutInMinutes = 15,
Name = "in-nat-rule",
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
LoadBalancerName = "lb",
LoadBalancingRules = new[]
{
new AzureNative.Network.Inputs.LoadBalancingRuleArgs
{
BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
},
BackendPort = 80,
DisableOutboundSnat = true,
EnableFloatingIP = true,
FrontendIPConfiguration = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
FrontendPort = 80,
IdleTimeoutInMinutes = 15,
LoadDistribution = AzureNative.Network.LoadDistribution.Default,
Name = "rulelb",
Probe = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb",
},
Protocol = AzureNative.Network.TransportProtocol.Tcp,
},
},
Location = "eastus",
OutboundRules = new[]
{
new AzureNative.Network.Inputs.OutboundRuleArgs
{
BackendAddressPool = new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb",
},
FrontendIPConfigurations = new[]
{
new AzureNative.Network.Inputs.SubResourceArgs
{
Id = "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb",
},
},
Name = "rule1",
Protocol = AzureNative.Network.LoadBalancerOutboundRuleProtocol.All,
},
},
Probes = new[]
{
new AzureNative.Network.Inputs.ProbeArgs
{
IntervalInSeconds = 15,
Name = "probe-lb",
NumberOfProbes = 2,
Port = 80,
ProbeThreshold = 1,
Protocol = AzureNative.Network.ProbeProtocol.Http,
RequestPath = "healthcheck.aspx",
},
},
ResourceGroupName = "rg1",
Sku = new AzureNative.Network.Inputs.LoadBalancerSkuArgs
{
Name = AzureNative.Network.LoadBalancerSkuName.Standard,
},
});
});
package main
import (
network "github.com/pulumi/pulumi-azure-native-sdk/network/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := network.NewLoadBalancer(ctx, "loadBalancer", &network.LoadBalancerArgs{
BackendAddressPools: network.BackendAddressPoolArray{
&network.BackendAddressPoolArgs{
Name: pulumi.String("be-lb"),
},
},
FrontendIPConfigurations: network.FrontendIPConfigurationArray{
&network.FrontendIPConfigurationArgs{
Name: pulumi.String("fe-lb"),
PublicIPAddress: &network.PublicIPAddressTypeArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip"),
},
},
},
InboundNatPools: network.InboundNatPoolArray{},
InboundNatRules: network.InboundNatRuleTypeArray{
&network.InboundNatRuleTypeArgs{
BackendPort: pulumi.Int(3389),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(3389),
IdleTimeoutInMinutes: pulumi.Int(15),
Name: pulumi.String("in-nat-rule"),
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
LoadBalancerName: pulumi.String("lb"),
LoadBalancingRules: network.LoadBalancingRuleArray{
&network.LoadBalancingRuleArgs{
BackendAddressPool: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"),
},
BackendPort: pulumi.Int(80),
DisableOutboundSnat: pulumi.Bool(true),
EnableFloatingIP: pulumi.Bool(true),
FrontendIPConfiguration: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
FrontendPort: pulumi.Int(80),
IdleTimeoutInMinutes: pulumi.Int(15),
LoadDistribution: pulumi.String(network.LoadDistributionDefault),
Name: pulumi.String("rulelb"),
Probe: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb"),
},
Protocol: pulumi.String(network.TransportProtocolTcp),
},
},
Location: pulumi.String("eastus"),
OutboundRules: network.OutboundRuleArray{
&network.OutboundRuleArgs{
BackendAddressPool: &network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb"),
},
FrontendIPConfigurations: network.SubResourceArray{
&network.SubResourceArgs{
Id: pulumi.String("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb"),
},
},
Name: pulumi.String("rule1"),
Protocol: pulumi.String(network.LoadBalancerOutboundRuleProtocolAll),
},
},
Probes: network.ProbeArray{
&network.ProbeArgs{
IntervalInSeconds: pulumi.Int(15),
Name: pulumi.String("probe-lb"),
NumberOfProbes: pulumi.Int(2),
Port: pulumi.Int(80),
ProbeThreshold: pulumi.Int(1),
Protocol: pulumi.String(network.ProbeProtocolHttp),
RequestPath: pulumi.String("healthcheck.aspx"),
},
},
ResourceGroupName: pulumi.String("rg1"),
Sku: &network.LoadBalancerSkuArgs{
Name: pulumi.String(network.LoadBalancerSkuNameStandard),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.network.LoadBalancer;
import com.pulumi.azurenative.network.LoadBalancerArgs;
import com.pulumi.azurenative.network.inputs.BackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.PublicIPAddressArgs;
import com.pulumi.azurenative.network.inputs.InboundNatRuleArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.network.inputs.OutboundRuleArgs;
import com.pulumi.azurenative.network.inputs.ProbeArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancerSkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var loadBalancer = new LoadBalancer("loadBalancer", LoadBalancerArgs.builder()
.backendAddressPools(BackendAddressPoolArgs.builder()
.name("be-lb")
.build())
.frontendIPConfigurations(FrontendIPConfigurationArgs.builder()
.name("fe-lb")
.publicIPAddress(PublicIPAddressArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip")
.build())
.build())
.inboundNatPools()
.inboundNatRules(InboundNatRuleArgs.builder()
.backendPort(3389)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(3389)
.idleTimeoutInMinutes(15)
.name("in-nat-rule")
.protocol("Tcp")
.build())
.loadBalancerName("lb")
.loadBalancingRules(LoadBalancingRuleArgs.builder()
.backendAddressPool(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb")
.build())
.backendPort(80)
.disableOutboundSnat(true)
.enableFloatingIP(true)
.frontendIPConfiguration(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.frontendPort(80)
.idleTimeoutInMinutes(15)
.loadDistribution("Default")
.name("rulelb")
.probe(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/probes/probe-lb")
.build())
.protocol("Tcp")
.build())
.location("eastus")
.outboundRules(OutboundRuleArgs.builder()
.backendAddressPool(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/backendAddressPools/be-lb")
.build())
.frontendIPConfigurations(SubResourceArgs.builder()
.id("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb/frontendIPConfigurations/fe-lb")
.build())
.name("rule1")
.protocol("All")
.build())
.probes(ProbeArgs.builder()
.intervalInSeconds(15)
.name("probe-lb")
.numberOfProbes(2)
.port(80)
.probeThreshold(1)
.protocol("Http")
.requestPath("healthcheck.aspx")
.build())
.resourceGroupName("rg1")
.sku(LoadBalancerSkuArgs.builder()
.name("Standard")
.build())
.build());
}
}

Import

An existing resource can be imported using its type token, name, and identifier, e.g.

$ pulumi import azure-native:network:LoadBalancer lb /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}

Constructors

Link copied to clipboard
constructor(backendAddressPools: Output<List<BackendAddressPoolArgs>>? = null, extendedLocation: Output<ExtendedLocationArgs>? = null, frontendIPConfigurations: Output<List<FrontendIPConfigurationArgs>>? = null, id: Output<String>? = null, inboundNatPools: Output<List<InboundNatPoolArgs>>? = null, inboundNatRules: Output<List<InboundNatRuleArgs>>? = null, loadBalancerName: Output<String>? = null, loadBalancingRules: Output<List<LoadBalancingRuleArgs>>? = null, location: Output<String>? = null, outboundRules: Output<List<OutboundRuleArgs>>? = null, probes: Output<List<ProbeArgs>>? = null, resourceGroupName: Output<String>? = null, sku: Output<LoadBalancerSkuArgs>? = null, tags: Output<Map<String, String>>? = null)

Properties

Link copied to clipboard

Collection of backend address pools used by a load balancer. These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.

Link copied to clipboard

The extended location of the load balancer.

Link copied to clipboard

Object representing the frontend IPs to be used for the load balancer.

Link copied to clipboard
val id: Output<String>? = null

Resource ID.

Link copied to clipboard

Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules.

Link copied to clipboard

Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules. These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.

Link copied to clipboard
val loadBalancerName: Output<String>? = null

The name of the load balancer.

Link copied to clipboard

Object collection representing the load balancing rules Gets the provisioning.

Link copied to clipboard
val location: Output<String>? = null

Resource location.

Link copied to clipboard
val outboundRules: Output<List<OutboundRuleArgs>>? = null

The outbound rules.

Link copied to clipboard
val probes: Output<List<ProbeArgs>>? = null

Collection of probe objects used in the load balancer.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

The name of the resource group.

Link copied to clipboard
val sku: Output<LoadBalancerSkuArgs>? = null

The load balancer SKU.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

Resource tags.

Functions

Link copied to clipboard
open override fun toJava(): LoadBalancerArgs