OutboundRuleArgs

data class OutboundRuleArgs(val allocatedOutboundPorts: Output<Int>? = null, val backendAddressPoolId: Output<String>? = null, val enableTcpReset: Output<Boolean>? = null, val frontendIpConfigurations: Output<List<OutboundRuleFrontendIpConfigurationArgs>>? = null, val idleTimeoutInMinutes: Output<Int>? = null, val loadbalancerId: Output<String>? = null, val name: Output<String>? = null, val protocol: Output<String>? = null) : ConvertibleToJava<OutboundRuleArgs>

Manages a Load Balancer Outbound Rule.

Note: When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration and a Backend Address Pool Attached.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "LoadBalancerRG",
location: "West Europe",
});
const examplePublicIp = new azure.network.PublicIp("example", {
name: "PublicIPForLB",
location: example.location,
resourceGroupName: example.name,
allocationMethod: "Static",
});
const exampleLoadBalancer = new azure.lb.LoadBalancer("example", {
name: "TestLoadBalancer",
location: example.location,
resourceGroupName: example.name,
frontendIpConfigurations: [{
name: "PublicIPAddress",
publicIpAddressId: examplePublicIp.id,
}],
});
const exampleBackendAddressPool = new azure.lb.BackendAddressPool("example", {
name: "example",
loadbalancerId: exampleLoadBalancer.id,
});
const exampleOutboundRule = new azure.lb.OutboundRule("example", {
name: "OutboundRule",
loadbalancerId: exampleLoadBalancer.id,
protocol: "Tcp",
backendAddressPoolId: exampleBackendAddressPool.id,
frontendIpConfigurations: [{
name: "PublicIPAddress",
}],
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="LoadBalancerRG",
location="West Europe")
example_public_ip = azure.network.PublicIp("example",
name="PublicIPForLB",
location=example.location,
resource_group_name=example.name,
allocation_method="Static")
example_load_balancer = azure.lb.LoadBalancer("example",
name="TestLoadBalancer",
location=example.location,
resource_group_name=example.name,
frontend_ip_configurations=[{
"name": "PublicIPAddress",
"public_ip_address_id": example_public_ip.id,
}])
example_backend_address_pool = azure.lb.BackendAddressPool("example",
name="example",
loadbalancer_id=example_load_balancer.id)
example_outbound_rule = azure.lb.OutboundRule("example",
name="OutboundRule",
loadbalancer_id=example_load_balancer.id,
protocol="Tcp",
backend_address_pool_id=example_backend_address_pool.id,
frontend_ip_configurations=[{
"name": "PublicIPAddress",
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "LoadBalancerRG",
Location = "West Europe",
});
var examplePublicIp = new Azure.Network.PublicIp("example", new()
{
Name = "PublicIPForLB",
Location = example.Location,
ResourceGroupName = example.Name,
AllocationMethod = "Static",
});
var exampleLoadBalancer = new Azure.Lb.LoadBalancer("example", new()
{
Name = "TestLoadBalancer",
Location = example.Location,
ResourceGroupName = example.Name,
FrontendIpConfigurations = new[]
{
new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs
{
Name = "PublicIPAddress",
PublicIpAddressId = examplePublicIp.Id,
},
},
});
var exampleBackendAddressPool = new Azure.Lb.BackendAddressPool("example", new()
{
Name = "example",
LoadbalancerId = exampleLoadBalancer.Id,
});
var exampleOutboundRule = new Azure.Lb.OutboundRule("example", new()
{
Name = "OutboundRule",
LoadbalancerId = exampleLoadBalancer.Id,
Protocol = "Tcp",
BackendAddressPoolId = exampleBackendAddressPool.Id,
FrontendIpConfigurations = new[]
{
new Azure.Lb.Inputs.OutboundRuleFrontendIpConfigurationArgs
{
Name = "PublicIPAddress",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/lb"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("LoadBalancerRG"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
examplePublicIp, err := network.NewPublicIp(ctx, "example", &network.PublicIpArgs{
Name: pulumi.String("PublicIPForLB"),
Location: example.Location,
ResourceGroupName: example.Name,
AllocationMethod: pulumi.String("Static"),
})
if err != nil {
return err
}
exampleLoadBalancer, err := lb.NewLoadBalancer(ctx, "example", &lb.LoadBalancerArgs{
Name: pulumi.String("TestLoadBalancer"),
Location: example.Location,
ResourceGroupName: example.Name,
FrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{
&lb.LoadBalancerFrontendIpConfigurationArgs{
Name: pulumi.String("PublicIPAddress"),
PublicIpAddressId: examplePublicIp.ID(),
},
},
})
if err != nil {
return err
}
exampleBackendAddressPool, err := lb.NewBackendAddressPool(ctx, "example", &lb.BackendAddressPoolArgs{
Name: pulumi.String("example"),
LoadbalancerId: exampleLoadBalancer.ID(),
})
if err != nil {
return err
}
_, err = lb.NewOutboundRule(ctx, "example", &lb.OutboundRuleArgs{
Name: pulumi.String("OutboundRule"),
LoadbalancerId: exampleLoadBalancer.ID(),
Protocol: pulumi.String("Tcp"),
BackendAddressPoolId: exampleBackendAddressPool.ID(),
FrontendIpConfigurations: lb.OutboundRuleFrontendIpConfigurationArray{
&lb.OutboundRuleFrontendIpConfigurationArgs{
Name: pulumi.String("PublicIPAddress"),
},
},
})
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.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.network.PublicIp;
import com.pulumi.azure.network.PublicIpArgs;
import com.pulumi.azure.lb.LoadBalancer;
import com.pulumi.azure.lb.LoadBalancerArgs;
import com.pulumi.azure.lb.inputs.LoadBalancerFrontendIpConfigurationArgs;
import com.pulumi.azure.lb.BackendAddressPool;
import com.pulumi.azure.lb.BackendAddressPoolArgs;
import com.pulumi.azure.lb.OutboundRule;
import com.pulumi.azure.lb.OutboundRuleArgs;
import com.pulumi.azure.lb.inputs.OutboundRuleFrontendIpConfigurationArgs;
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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("LoadBalancerRG")
.location("West Europe")
.build());
var examplePublicIp = new PublicIp("examplePublicIp", PublicIpArgs.builder()
.name("PublicIPForLB")
.location(example.location())
.resourceGroupName(example.name())
.allocationMethod("Static")
.build());
var exampleLoadBalancer = new LoadBalancer("exampleLoadBalancer", LoadBalancerArgs.builder()
.name("TestLoadBalancer")
.location(example.location())
.resourceGroupName(example.name())
.frontendIpConfigurations(LoadBalancerFrontendIpConfigurationArgs.builder()
.name("PublicIPAddress")
.publicIpAddressId(examplePublicIp.id())
.build())
.build());
var exampleBackendAddressPool = new BackendAddressPool("exampleBackendAddressPool", BackendAddressPoolArgs.builder()
.name("example")
.loadbalancerId(exampleLoadBalancer.id())
.build());
var exampleOutboundRule = new OutboundRule("exampleOutboundRule", OutboundRuleArgs.builder()
.name("OutboundRule")
.loadbalancerId(exampleLoadBalancer.id())
.protocol("Tcp")
.backendAddressPoolId(exampleBackendAddressPool.id())
.frontendIpConfigurations(OutboundRuleFrontendIpConfigurationArgs.builder()
.name("PublicIPAddress")
.build())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: LoadBalancerRG
location: West Europe
examplePublicIp:
type: azure:network:PublicIp
name: example
properties:
name: PublicIPForLB
location: ${example.location}
resourceGroupName: ${example.name}
allocationMethod: Static
exampleLoadBalancer:
type: azure:lb:LoadBalancer
name: example
properties:
name: TestLoadBalancer
location: ${example.location}
resourceGroupName: ${example.name}
frontendIpConfigurations:
- name: PublicIPAddress
publicIpAddressId: ${examplePublicIp.id}
exampleBackendAddressPool:
type: azure:lb:BackendAddressPool
name: example
properties:
name: example
loadbalancerId: ${exampleLoadBalancer.id}
exampleOutboundRule:
type: azure:lb:OutboundRule
name: example
properties:
name: OutboundRule
loadbalancerId: ${exampleLoadBalancer.id}
protocol: Tcp
backendAddressPoolId: ${exampleBackendAddressPool.id}
frontendIpConfigurations:
- name: PublicIPAddress

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.Network: 2023-09-01

Import

Load Balancer Outbound Rules can be imported using the resource id, e.g.

$ pulumi import azure:lb/outboundRule:OutboundRule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Network/loadBalancers/lb1/outboundRules/rule1

Constructors

Link copied to clipboard
constructor(allocatedOutboundPorts: Output<Int>? = null, backendAddressPoolId: Output<String>? = null, enableTcpReset: Output<Boolean>? = null, frontendIpConfigurations: Output<List<OutboundRuleFrontendIpConfigurationArgs>>? = null, idleTimeoutInMinutes: Output<Int>? = null, loadbalancerId: Output<String>? = null, name: Output<String>? = null, protocol: Output<String>? = null)

Properties

Link copied to clipboard
val allocatedOutboundPorts: Output<Int>? = null

The number of outbound ports to be used for NAT. Defaults to 1024.

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

The ID of the Backend Address Pool. Outbound traffic is randomly load balanced across IPs in the backend IPs.

Link copied to clipboard
val enableTcpReset: Output<Boolean>? = null

Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP.

Link copied to clipboard

One or more frontend_ip_configuration blocks as defined below.

Link copied to clipboard
val idleTimeoutInMinutes: Output<Int>? = null

The timeout for the TCP idle connection Defaults to 4.

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

The ID of the Load Balancer in which to create the Outbound Rule. Changing this forces a new resource to be created.

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

Specifies the name of the Outbound Rule. Changing this forces a new resource to be created.

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

The transport protocol for the external endpoint. Possible values are Udp, Tcp or All.

Functions

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