AWS Classic

v5.16.2 published on Tuesday, Oct 4, 2022 by Pulumi

LoadBalancer

Deprecated:

aws.elasticloadbalancing.LoadBalancer has been deprecated in favor of aws.elb.LoadBalancer

Provides an Elastic Load Balancer resource, also known as a “Classic Load Balancer” after the release of Application/Network Load Balancers.

NOTE on ELB Instances and ELB Attachments: This provider currently provides both a standalone ELB Attachment resource (describing an instance attached to an ELB), and an ELB resource with instances defined in-line. At this time you cannot use an ELB with in-line instances in conjunction with a ELB Attachment resources. Doing so will cause a conflict and will overwrite attachments.

Note on ECDSA Key Algorithm

If the ARN of the ssl_certificate_id that is pointed to references a certificate that was signed by an ECDSA key, note that ELB only supports the P256 and P384 curves. Using a certificate signed by a key using a different curve could produce the error ERR_SSL_VERSION_OR_CIPHER_MISMATCH in your browser.

Example Usage

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    // Create a new load balancer
    var bar = new Aws.Elb.LoadBalancer("bar", new()
    {
        AvailabilityZones = new[]
        {
            "us-west-2a",
            "us-west-2b",
            "us-west-2c",
        },
        AccessLogs = new Aws.Elb.Inputs.LoadBalancerAccessLogsArgs
        {
            Bucket = "foo",
            BucketPrefix = "bar",
            Interval = 60,
        },
        Listeners = new[]
        {
            new Aws.Elb.Inputs.LoadBalancerListenerArgs
            {
                InstancePort = 8000,
                InstanceProtocol = "http",
                LbPort = 80,
                LbProtocol = "http",
            },
            new Aws.Elb.Inputs.LoadBalancerListenerArgs
            {
                InstancePort = 8000,
                InstanceProtocol = "http",
                LbPort = 443,
                LbProtocol = "https",
                SslCertificateId = "arn:aws:iam::123456789012:server-certificate/certName",
            },
        },
        HealthCheck = new Aws.Elb.Inputs.LoadBalancerHealthCheckArgs
        {
            HealthyThreshold = 2,
            UnhealthyThreshold = 2,
            Timeout = 3,
            Target = "HTTP:8000/",
            Interval = 30,
        },
        Instances = new[]
        {
            aws_instance.Foo.Id,
        },
        CrossZoneLoadBalancing = true,
        IdleTimeout = 400,
        ConnectionDraining = true,
        ConnectionDrainingTimeout = 400,
        Tags = 
        {
            { "Name", "foobar-elb" },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := elb.NewLoadBalancer(ctx, "bar", &elb.LoadBalancerArgs{
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-west-2a"),
				pulumi.String("us-west-2b"),
				pulumi.String("us-west-2c"),
			},
			AccessLogs: &elb.LoadBalancerAccessLogsArgs{
				Bucket:       pulumi.String("foo"),
				BucketPrefix: pulumi.String("bar"),
				Interval:     pulumi.Int(60),
			},
			Listeners: elb.LoadBalancerListenerArray{
				&elb.LoadBalancerListenerArgs{
					InstancePort:     pulumi.Int(8000),
					InstanceProtocol: pulumi.String("http"),
					LbPort:           pulumi.Int(80),
					LbProtocol:       pulumi.String("http"),
				},
				&elb.LoadBalancerListenerArgs{
					InstancePort:     pulumi.Int(8000),
					InstanceProtocol: pulumi.String("http"),
					LbPort:           pulumi.Int(443),
					LbProtocol:       pulumi.String("https"),
					SslCertificateId: pulumi.String("arn:aws:iam::123456789012:server-certificate/certName"),
				},
			},
			HealthCheck: &elb.LoadBalancerHealthCheckArgs{
				HealthyThreshold:   pulumi.Int(2),
				UnhealthyThreshold: pulumi.Int(2),
				Timeout:            pulumi.Int(3),
				Target:             pulumi.String("HTTP:8000/"),
				Interval:           pulumi.Int(30),
			},
			Instances: pulumi.StringArray{
				pulumi.Any(aws_instance.Foo.Id),
			},
			CrossZoneLoadBalancing:    pulumi.Bool(true),
			IdleTimeout:               pulumi.Int(400),
			ConnectionDraining:        pulumi.Bool(true),
			ConnectionDrainingTimeout: pulumi.Int(400),
			Tags: pulumi.StringMap{
				"Name": pulumi.String("foobar-elb"),
			},
		})
		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.aws.elb.LoadBalancer;
import com.pulumi.aws.elb.LoadBalancerArgs;
import com.pulumi.aws.elb.inputs.LoadBalancerAccessLogsArgs;
import com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;
import com.pulumi.aws.elb.inputs.LoadBalancerHealthCheckArgs;
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 bar = new LoadBalancer("bar", LoadBalancerArgs.builder()        
            .availabilityZones(            
                "us-west-2a",
                "us-west-2b",
                "us-west-2c")
            .accessLogs(LoadBalancerAccessLogsArgs.builder()
                .bucket("foo")
                .bucketPrefix("bar")
                .interval(60)
                .build())
            .listeners(            
                LoadBalancerListenerArgs.builder()
                    .instancePort(8000)
                    .instanceProtocol("http")
                    .lbPort(80)
                    .lbProtocol("http")
                    .build(),
                LoadBalancerListenerArgs.builder()
                    .instancePort(8000)
                    .instanceProtocol("http")
                    .lbPort(443)
                    .lbProtocol("https")
                    .sslCertificateId("arn:aws:iam::123456789012:server-certificate/certName")
                    .build())
            .healthCheck(LoadBalancerHealthCheckArgs.builder()
                .healthyThreshold(2)
                .unhealthyThreshold(2)
                .timeout(3)
                .target("HTTP:8000/")
                .interval(30)
                .build())
            .instances(aws_instance.foo().id())
            .crossZoneLoadBalancing(true)
            .idleTimeout(400)
            .connectionDraining(true)
            .connectionDrainingTimeout(400)
            .tags(Map.of("Name", "foobar-elb"))
            .build());

    }
}
import pulumi
import pulumi_aws as aws

# Create a new load balancer
bar = aws.elb.LoadBalancer("bar",
    availability_zones=[
        "us-west-2a",
        "us-west-2b",
        "us-west-2c",
    ],
    access_logs=aws.elb.LoadBalancerAccessLogsArgs(
        bucket="foo",
        bucket_prefix="bar",
        interval=60,
    ),
    listeners=[
        aws.elb.LoadBalancerListenerArgs(
            instance_port=8000,
            instance_protocol="http",
            lb_port=80,
            lb_protocol="http",
        ),
        aws.elb.LoadBalancerListenerArgs(
            instance_port=8000,
            instance_protocol="http",
            lb_port=443,
            lb_protocol="https",
            ssl_certificate_id="arn:aws:iam::123456789012:server-certificate/certName",
        ),
    ],
    health_check=aws.elb.LoadBalancerHealthCheckArgs(
        healthy_threshold=2,
        unhealthy_threshold=2,
        timeout=3,
        target="HTTP:8000/",
        interval=30,
    ),
    instances=[aws_instance["foo"]["id"]],
    cross_zone_load_balancing=True,
    idle_timeout=400,
    connection_draining=True,
    connection_draining_timeout=400,
    tags={
        "Name": "foobar-elb",
    })
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

// Create a new load balancer
const bar = new aws.elb.LoadBalancer("bar", {
    availabilityZones: [
        "us-west-2a",
        "us-west-2b",
        "us-west-2c",
    ],
    accessLogs: {
        bucket: "foo",
        bucketPrefix: "bar",
        interval: 60,
    },
    listeners: [
        {
            instancePort: 8000,
            instanceProtocol: "http",
            lbPort: 80,
            lbProtocol: "http",
        },
        {
            instancePort: 8000,
            instanceProtocol: "http",
            lbPort: 443,
            lbProtocol: "https",
            sslCertificateId: "arn:aws:iam::123456789012:server-certificate/certName",
        },
    ],
    healthCheck: {
        healthyThreshold: 2,
        unhealthyThreshold: 2,
        timeout: 3,
        target: "HTTP:8000/",
        interval: 30,
    },
    instances: [aws_instance.foo.id],
    crossZoneLoadBalancing: true,
    idleTimeout: 400,
    connectionDraining: true,
    connectionDrainingTimeout: 400,
    tags: {
        Name: "foobar-elb",
    },
});
resources:
  # Create a new load balancer
  bar:
    type: aws:elb:LoadBalancer
    properties:
      availabilityZones:
        - us-west-2a
        - us-west-2b
        - us-west-2c
      accessLogs:
        bucket: foo
        bucketPrefix: bar
        interval: 60
      listeners:
        - instancePort: 8000
          instanceProtocol: http
          lbPort: 80
          lbProtocol: http
        - instancePort: 8000
          instanceProtocol: http
          lbPort: 443
          lbProtocol: https
          sslCertificateId: arn:aws:iam::123456789012:server-certificate/certName
      healthCheck:
        healthyThreshold: 2
        unhealthyThreshold: 2
        timeout: 3
        target: HTTP:8000/
        interval: 30
      instances:
        - ${aws_instance.foo.id}
      crossZoneLoadBalancing: true
      idleTimeout: 400
      connectionDraining: true
      connectionDrainingTimeout: 400
      tags:
        Name: foobar-elb

Create a LoadBalancer Resource

new LoadBalancer(name: string, args: LoadBalancerArgs, opts?: CustomResourceOptions);
@overload
def LoadBalancer(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 access_logs: Optional[LoadBalancerAccessLogsArgs] = None,
                 availability_zones: Optional[Sequence[str]] = None,
                 connection_draining: Optional[bool] = None,
                 connection_draining_timeout: Optional[int] = None,
                 cross_zone_load_balancing: Optional[bool] = None,
                 desync_mitigation_mode: Optional[str] = None,
                 health_check: Optional[LoadBalancerHealthCheckArgs] = None,
                 idle_timeout: Optional[int] = None,
                 instances: Optional[Sequence[str]] = None,
                 internal: Optional[bool] = None,
                 listeners: Optional[Sequence[LoadBalancerListenerArgs]] = None,
                 name: Optional[str] = None,
                 name_prefix: Optional[str] = None,
                 security_groups: Optional[Sequence[str]] = None,
                 source_security_group: Optional[str] = None,
                 subnets: Optional[Sequence[str]] = None,
                 tags: Optional[Mapping[str, str]] = None)
@overload
def LoadBalancer(resource_name: str,
                 args: LoadBalancerArgs,
                 opts: Optional[ResourceOptions] = None)
func NewLoadBalancer(ctx *Context, name string, args LoadBalancerArgs, opts ...ResourceOption) (*LoadBalancer, error)
public LoadBalancer(string name, LoadBalancerArgs args, CustomResourceOptions? opts = null)
public LoadBalancer(String name, LoadBalancerArgs args)
public LoadBalancer(String name, LoadBalancerArgs args, CustomResourceOptions options)
type: aws:elasticloadbalancing:LoadBalancer
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args LoadBalancerArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args LoadBalancerArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args LoadBalancerArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args LoadBalancerArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args LoadBalancerArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

LoadBalancer Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

The LoadBalancer resource accepts the following input properties:

Listeners List<LoadBalancerListenerArgs>

A list of listener blocks. Listeners documented below.

AccessLogs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

AvailabilityZones List<string>

The AZ's to serve traffic in.

ConnectionDraining bool

Boolean to enable connection draining. Default: false

ConnectionDrainingTimeout int

The time in seconds to allow for connections to drain. Default: 300

CrossZoneLoadBalancing bool

Enable cross-zone load balancing. Default: true

DesyncMitigationMode string

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

HealthCheck LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

IdleTimeout int

The time in seconds that the connection is allowed to be idle. Default: 60

Instances List<string>

A list of instance ids to place in the ELB pool.

Internal bool

If true, ELB will be an internal ELB.

Name string

The name of the ELB. By default generated by this provider.

NamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

SecurityGroups List<string>

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

SourceSecurityGroup string

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

Subnets List<string>

A list of subnet IDs to attach to the ELB.

Tags Dictionary<string, string>

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Listeners []LoadBalancerListenerArgs

A list of listener blocks. Listeners documented below.

AccessLogs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

AvailabilityZones []string

The AZ's to serve traffic in.

ConnectionDraining bool

Boolean to enable connection draining. Default: false

ConnectionDrainingTimeout int

The time in seconds to allow for connections to drain. Default: 300

CrossZoneLoadBalancing bool

Enable cross-zone load balancing. Default: true

DesyncMitigationMode string

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

HealthCheck LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

IdleTimeout int

The time in seconds that the connection is allowed to be idle. Default: 60

Instances []string

A list of instance ids to place in the ELB pool.

Internal bool

If true, ELB will be an internal ELB.

Name string

The name of the ELB. By default generated by this provider.

NamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

SecurityGroups []string

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

SourceSecurityGroup string

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

Subnets []string

A list of subnet IDs to attach to the ELB.

Tags map[string]string

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

listeners List<LoadBalancerListenerArgs>

A list of listener blocks. Listeners documented below.

accessLogs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

availabilityZones List<String>

The AZ's to serve traffic in.

connectionDraining Boolean

Boolean to enable connection draining. Default: false

connectionDrainingTimeout Integer

The time in seconds to allow for connections to drain. Default: 300

crossZoneLoadBalancing Boolean

Enable cross-zone load balancing. Default: true

desyncMitigationMode String

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

healthCheck LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

idleTimeout Integer

The time in seconds that the connection is allowed to be idle. Default: 60

instances List<String>

A list of instance ids to place in the ELB pool.

internal Boolean

If true, ELB will be an internal ELB.

name String

The name of the ELB. By default generated by this provider.

namePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with name.

securityGroups List<String>

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

sourceSecurityGroup String

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

subnets List<String>

A list of subnet IDs to attach to the ELB.

tags Map<String,String>

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

listeners LoadBalancerListenerArgs[]

A list of listener blocks. Listeners documented below.

accessLogs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

availabilityZones string[]

The AZ's to serve traffic in.

connectionDraining boolean

Boolean to enable connection draining. Default: false

connectionDrainingTimeout number

The time in seconds to allow for connections to drain. Default: 300

crossZoneLoadBalancing boolean

Enable cross-zone load balancing. Default: true

desyncMitigationMode string

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

healthCheck LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

idleTimeout number

The time in seconds that the connection is allowed to be idle. Default: 60

instances string[]

A list of instance ids to place in the ELB pool.

internal boolean

If true, ELB will be an internal ELB.

name string

The name of the ELB. By default generated by this provider.

namePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

securityGroups string[]

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

sourceSecurityGroup string

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

subnets string[]

A list of subnet IDs to attach to the ELB.

tags {[key: string]: string}

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

listeners Sequence[LoadBalancerListenerArgs]

A list of listener blocks. Listeners documented below.

access_logs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

availability_zones Sequence[str]

The AZ's to serve traffic in.

connection_draining bool

Boolean to enable connection draining. Default: false

connection_draining_timeout int

The time in seconds to allow for connections to drain. Default: 300

cross_zone_load_balancing bool

Enable cross-zone load balancing. Default: true

desync_mitigation_mode str

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

health_check LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

idle_timeout int

The time in seconds that the connection is allowed to be idle. Default: 60

instances Sequence[str]

A list of instance ids to place in the ELB pool.

internal bool

If true, ELB will be an internal ELB.

name str

The name of the ELB. By default generated by this provider.

name_prefix str

Creates a unique name beginning with the specified prefix. Conflicts with name.

security_groups Sequence[str]

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

source_security_group str

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

subnets Sequence[str]

A list of subnet IDs to attach to the ELB.

tags Mapping[str, str]

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

listeners List<Property Map>

A list of listener blocks. Listeners documented below.

accessLogs Property Map

An Access Logs block. Access Logs documented below.

availabilityZones List<String>

The AZ's to serve traffic in.

connectionDraining Boolean

Boolean to enable connection draining. Default: false

connectionDrainingTimeout Number

The time in seconds to allow for connections to drain. Default: 300

crossZoneLoadBalancing Boolean

Enable cross-zone load balancing. Default: true

desyncMitigationMode String

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

healthCheck Property Map

A health_check block. Health Check documented below.

idleTimeout Number

The time in seconds that the connection is allowed to be idle. Default: 60

instances List<String>

A list of instance ids to place in the ELB pool.

internal Boolean

If true, ELB will be an internal ELB.

name String

The name of the ELB. By default generated by this provider.

namePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with name.

securityGroups List<String>

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

sourceSecurityGroup String

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

subnets List<String>

A list of subnet IDs to attach to the ELB.

tags Map<String>

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Outputs

All input properties are implicitly available as output properties. Additionally, the LoadBalancer resource produces the following output properties:

Arn string

The ARN of the ELB

DnsName string

The DNS name of the ELB

Id string

The provider-assigned unique ID for this managed resource.

SourceSecurityGroupId string

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

TagsAll Dictionary<string, string>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

ZoneId string

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

Arn string

The ARN of the ELB

DnsName string

The DNS name of the ELB

Id string

The provider-assigned unique ID for this managed resource.

SourceSecurityGroupId string

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

TagsAll map[string]string

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

ZoneId string

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

arn String

The ARN of the ELB

dnsName String

The DNS name of the ELB

id String

The provider-assigned unique ID for this managed resource.

sourceSecurityGroupId String

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

tagsAll Map<String,String>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

zoneId String

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

arn string

The ARN of the ELB

dnsName string

The DNS name of the ELB

id string

The provider-assigned unique ID for this managed resource.

sourceSecurityGroupId string

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

tagsAll {[key: string]: string}

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

zoneId string

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

arn str

The ARN of the ELB

dns_name str

The DNS name of the ELB

id str

The provider-assigned unique ID for this managed resource.

source_security_group_id str

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

tags_all Mapping[str, str]

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

zone_id str

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

arn String

The ARN of the ELB

dnsName String

The DNS name of the ELB

id String

The provider-assigned unique ID for this managed resource.

sourceSecurityGroupId String

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

tagsAll Map<String>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

zoneId String

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

Look up an Existing LoadBalancer Resource

Get an existing LoadBalancer resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: LoadBalancerState, opts?: CustomResourceOptions): LoadBalancer
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        access_logs: Optional[LoadBalancerAccessLogsArgs] = None,
        arn: Optional[str] = None,
        availability_zones: Optional[Sequence[str]] = None,
        connection_draining: Optional[bool] = None,
        connection_draining_timeout: Optional[int] = None,
        cross_zone_load_balancing: Optional[bool] = None,
        desync_mitigation_mode: Optional[str] = None,
        dns_name: Optional[str] = None,
        health_check: Optional[LoadBalancerHealthCheckArgs] = None,
        idle_timeout: Optional[int] = None,
        instances: Optional[Sequence[str]] = None,
        internal: Optional[bool] = None,
        listeners: Optional[Sequence[LoadBalancerListenerArgs]] = None,
        name: Optional[str] = None,
        name_prefix: Optional[str] = None,
        security_groups: Optional[Sequence[str]] = None,
        source_security_group: Optional[str] = None,
        source_security_group_id: Optional[str] = None,
        subnets: Optional[Sequence[str]] = None,
        tags: Optional[Mapping[str, str]] = None,
        tags_all: Optional[Mapping[str, str]] = None,
        zone_id: Optional[str] = None) -> LoadBalancer
func GetLoadBalancer(ctx *Context, name string, id IDInput, state *LoadBalancerState, opts ...ResourceOption) (*LoadBalancer, error)
public static LoadBalancer Get(string name, Input<string> id, LoadBalancerState? state, CustomResourceOptions? opts = null)
public static LoadBalancer get(String name, Output<String> id, LoadBalancerState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
AccessLogs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

Arn string

The ARN of the ELB

AvailabilityZones List<string>

The AZ's to serve traffic in.

ConnectionDraining bool

Boolean to enable connection draining. Default: false

ConnectionDrainingTimeout int

The time in seconds to allow for connections to drain. Default: 300

CrossZoneLoadBalancing bool

Enable cross-zone load balancing. Default: true

DesyncMitigationMode string

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

DnsName string

The DNS name of the ELB

HealthCheck LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

IdleTimeout int

The time in seconds that the connection is allowed to be idle. Default: 60

Instances List<string>

A list of instance ids to place in the ELB pool.

Internal bool

If true, ELB will be an internal ELB.

Listeners List<LoadBalancerListenerArgs>

A list of listener blocks. Listeners documented below.

Name string

The name of the ELB. By default generated by this provider.

NamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

SecurityGroups List<string>

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

SourceSecurityGroup string

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

SourceSecurityGroupId string

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

Subnets List<string>

A list of subnet IDs to attach to the ELB.

Tags Dictionary<string, string>

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

TagsAll Dictionary<string, string>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

ZoneId string

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

AccessLogs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

Arn string

The ARN of the ELB

AvailabilityZones []string

The AZ's to serve traffic in.

ConnectionDraining bool

Boolean to enable connection draining. Default: false

ConnectionDrainingTimeout int

The time in seconds to allow for connections to drain. Default: 300

CrossZoneLoadBalancing bool

Enable cross-zone load balancing. Default: true

DesyncMitigationMode string

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

DnsName string

The DNS name of the ELB

HealthCheck LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

IdleTimeout int

The time in seconds that the connection is allowed to be idle. Default: 60

Instances []string

A list of instance ids to place in the ELB pool.

Internal bool

If true, ELB will be an internal ELB.

Listeners []LoadBalancerListenerArgs

A list of listener blocks. Listeners documented below.

Name string

The name of the ELB. By default generated by this provider.

NamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

SecurityGroups []string

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

SourceSecurityGroup string

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

SourceSecurityGroupId string

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

Subnets []string

A list of subnet IDs to attach to the ELB.

Tags map[string]string

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

TagsAll map[string]string

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

ZoneId string

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

accessLogs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

arn String

The ARN of the ELB

availabilityZones List<String>

The AZ's to serve traffic in.

connectionDraining Boolean

Boolean to enable connection draining. Default: false

connectionDrainingTimeout Integer

The time in seconds to allow for connections to drain. Default: 300

crossZoneLoadBalancing Boolean

Enable cross-zone load balancing. Default: true

desyncMitigationMode String

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

dnsName String

The DNS name of the ELB

healthCheck LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

idleTimeout Integer

The time in seconds that the connection is allowed to be idle. Default: 60

instances List<String>

A list of instance ids to place in the ELB pool.

internal Boolean

If true, ELB will be an internal ELB.

listeners List<LoadBalancerListenerArgs>

A list of listener blocks. Listeners documented below.

name String

The name of the ELB. By default generated by this provider.

namePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with name.

securityGroups List<String>

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

sourceSecurityGroup String

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

sourceSecurityGroupId String

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

subnets List<String>

A list of subnet IDs to attach to the ELB.

tags Map<String,String>

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

tagsAll Map<String,String>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

zoneId String

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

accessLogs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

arn string

The ARN of the ELB

availabilityZones string[]

The AZ's to serve traffic in.

connectionDraining boolean

Boolean to enable connection draining. Default: false

connectionDrainingTimeout number

The time in seconds to allow for connections to drain. Default: 300

crossZoneLoadBalancing boolean

Enable cross-zone load balancing. Default: true

desyncMitigationMode string

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

dnsName string

The DNS name of the ELB

healthCheck LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

idleTimeout number

The time in seconds that the connection is allowed to be idle. Default: 60

instances string[]

A list of instance ids to place in the ELB pool.

internal boolean

If true, ELB will be an internal ELB.

listeners LoadBalancerListenerArgs[]

A list of listener blocks. Listeners documented below.

name string

The name of the ELB. By default generated by this provider.

namePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

securityGroups string[]

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

sourceSecurityGroup string

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

sourceSecurityGroupId string

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

subnets string[]

A list of subnet IDs to attach to the ELB.

tags {[key: string]: string}

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

tagsAll {[key: string]: string}

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

zoneId string

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

access_logs LoadBalancerAccessLogsArgs

An Access Logs block. Access Logs documented below.

arn str

The ARN of the ELB

availability_zones Sequence[str]

The AZ's to serve traffic in.

connection_draining bool

Boolean to enable connection draining. Default: false

connection_draining_timeout int

The time in seconds to allow for connections to drain. Default: 300

cross_zone_load_balancing bool

Enable cross-zone load balancing. Default: true

desync_mitigation_mode str

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

dns_name str

The DNS name of the ELB

health_check LoadBalancerHealthCheckArgs

A health_check block. Health Check documented below.

idle_timeout int

The time in seconds that the connection is allowed to be idle. Default: 60

instances Sequence[str]

A list of instance ids to place in the ELB pool.

internal bool

If true, ELB will be an internal ELB.

listeners Sequence[LoadBalancerListenerArgs]

A list of listener blocks. Listeners documented below.

name str

The name of the ELB. By default generated by this provider.

name_prefix str

Creates a unique name beginning with the specified prefix. Conflicts with name.

security_groups Sequence[str]

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

source_security_group str

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

source_security_group_id str

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

subnets Sequence[str]

A list of subnet IDs to attach to the ELB.

tags Mapping[str, str]

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

tags_all Mapping[str, str]

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

zone_id str

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

accessLogs Property Map

An Access Logs block. Access Logs documented below.

arn String

The ARN of the ELB

availabilityZones List<String>

The AZ's to serve traffic in.

connectionDraining Boolean

Boolean to enable connection draining. Default: false

connectionDrainingTimeout Number

The time in seconds to allow for connections to drain. Default: 300

crossZoneLoadBalancing Boolean

Enable cross-zone load balancing. Default: true

desyncMitigationMode String

Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.

dnsName String

The DNS name of the ELB

healthCheck Property Map

A health_check block. Health Check documented below.

idleTimeout Number

The time in seconds that the connection is allowed to be idle. Default: 60

instances List<String>

A list of instance ids to place in the ELB pool.

internal Boolean

If true, ELB will be an internal ELB.

listeners List<Property Map>

A list of listener blocks. Listeners documented below.

name String

The name of the ELB. By default generated by this provider.

namePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with name.

securityGroups List<String>

A list of security group IDs to assign to the ELB. Only valid if creating an ELB within a VPC

sourceSecurityGroup String

The name of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Use this for Classic or Default VPC only.

sourceSecurityGroupId String

The ID of the security group that you can use as part of your inbound rules for your load balancer's back-end application instances. Only available on ELBs launched in a VPC.

subnets List<String>

A list of subnet IDs to attach to the ELB.

tags Map<String>

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

tagsAll Map<String>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

zoneId String

The canonical hosted zone ID of the ELB (to be used in a Route 53 Alias record)

Supporting Types

LoadBalancerAccessLogs

Bucket string

The S3 bucket name to store the logs in.

BucketPrefix string

The S3 bucket prefix. Logs are stored in the root if not configured.

Enabled bool

Boolean to enable / disable access_logs. Default is true

Interval int

The publishing interval in minutes. Valid values: 5 and 60. Default: 60

Bucket string

The S3 bucket name to store the logs in.

BucketPrefix string

The S3 bucket prefix. Logs are stored in the root if not configured.

Enabled bool

Boolean to enable / disable access_logs. Default is true

Interval int

The publishing interval in minutes. Valid values: 5 and 60. Default: 60

bucket String

The S3 bucket name to store the logs in.

bucketPrefix String

The S3 bucket prefix. Logs are stored in the root if not configured.

enabled Boolean

Boolean to enable / disable access_logs. Default is true

interval Integer

The publishing interval in minutes. Valid values: 5 and 60. Default: 60

bucket string

The S3 bucket name to store the logs in.

bucketPrefix string

The S3 bucket prefix. Logs are stored in the root if not configured.

enabled boolean

Boolean to enable / disable access_logs. Default is true

interval number

The publishing interval in minutes. Valid values: 5 and 60. Default: 60

bucket str

The S3 bucket name to store the logs in.

bucket_prefix str

The S3 bucket prefix. Logs are stored in the root if not configured.

enabled bool

Boolean to enable / disable access_logs. Default is true

interval int

The publishing interval in minutes. Valid values: 5 and 60. Default: 60

bucket String

The S3 bucket name to store the logs in.

bucketPrefix String

The S3 bucket prefix. Logs are stored in the root if not configured.

enabled Boolean

Boolean to enable / disable access_logs. Default is true

interval Number

The publishing interval in minutes. Valid values: 5 and 60. Default: 60

LoadBalancerHealthCheck

HealthyThreshold int

The number of checks before the instance is declared healthy.

Interval int

The interval between checks.

Target string

The target of the check. Valid pattern is "${PROTOCOL}:${PORT}${PATH}", where PROTOCOL values are:

  • HTTP, HTTPS - PORT and PATH are required
  • TCP, SSL - PORT is required, PATH is not supported
Timeout int

The length of time before the check times out.

UnhealthyThreshold int

The number of checks before the instance is declared unhealthy.

HealthyThreshold int

The number of checks before the instance is declared healthy.

Interval int

The interval between checks.

Target string

The target of the check. Valid pattern is "${PROTOCOL}:${PORT}${PATH}", where PROTOCOL values are:

  • HTTP, HTTPS - PORT and PATH are required
  • TCP, SSL - PORT is required, PATH is not supported
Timeout int

The length of time before the check times out.

UnhealthyThreshold int

The number of checks before the instance is declared unhealthy.

healthyThreshold Integer

The number of checks before the instance is declared healthy.

interval Integer

The interval between checks.

target String

The target of the check. Valid pattern is "${PROTOCOL}:${PORT}${PATH}", where PROTOCOL values are:

  • HTTP, HTTPS - PORT and PATH are required
  • TCP, SSL - PORT is required, PATH is not supported
timeout Integer

The length of time before the check times out.

unhealthyThreshold Integer

The number of checks before the instance is declared unhealthy.

healthyThreshold number

The number of checks before the instance is declared healthy.

interval number

The interval between checks.

target string

The target of the check. Valid pattern is "${PROTOCOL}:${PORT}${PATH}", where PROTOCOL values are:

  • HTTP, HTTPS - PORT and PATH are required
  • TCP, SSL - PORT is required, PATH is not supported
timeout number

The length of time before the check times out.

unhealthyThreshold number

The number of checks before the instance is declared unhealthy.

healthy_threshold int

The number of checks before the instance is declared healthy.

interval int

The interval between checks.

target str

The target of the check. Valid pattern is "${PROTOCOL}:${PORT}${PATH}", where PROTOCOL values are:

  • HTTP, HTTPS - PORT and PATH are required
  • TCP, SSL - PORT is required, PATH is not supported
timeout int

The length of time before the check times out.

unhealthy_threshold int

The number of checks before the instance is declared unhealthy.

healthyThreshold Number

The number of checks before the instance is declared healthy.

interval Number

The interval between checks.

target String

The target of the check. Valid pattern is "${PROTOCOL}:${PORT}${PATH}", where PROTOCOL values are:

  • HTTP, HTTPS - PORT and PATH are required
  • TCP, SSL - PORT is required, PATH is not supported
timeout Number

The length of time before the check times out.

unhealthyThreshold Number

The number of checks before the instance is declared unhealthy.

LoadBalancerListener

InstancePort int

The port on the instance to route to

InstanceProtocol string

The protocol to use to the instance. Valid values are HTTP, HTTPS, TCP, or SSL

LbPort int

The port to listen on for the load balancer

LbProtocol string

The protocol to listen on. Valid values are HTTP, HTTPS, TCP, or SSL

SslCertificateId string

The ARN of an SSL certificate you have uploaded to AWS IAM. Note ECDSA-specific restrictions below. Only valid when lb_protocol is either HTTPS or SSL

InstancePort int

The port on the instance to route to

InstanceProtocol string

The protocol to use to the instance. Valid values are HTTP, HTTPS, TCP, or SSL

LbPort int

The port to listen on for the load balancer

LbProtocol string

The protocol to listen on. Valid values are HTTP, HTTPS, TCP, or SSL

SslCertificateId string

The ARN of an SSL certificate you have uploaded to AWS IAM. Note ECDSA-specific restrictions below. Only valid when lb_protocol is either HTTPS or SSL

instancePort Integer

The port on the instance to route to

instanceProtocol String

The protocol to use to the instance. Valid values are HTTP, HTTPS, TCP, or SSL

lbPort Integer

The port to listen on for the load balancer

lbProtocol String

The protocol to listen on. Valid values are HTTP, HTTPS, TCP, or SSL

sslCertificateId String

The ARN of an SSL certificate you have uploaded to AWS IAM. Note ECDSA-specific restrictions below. Only valid when lb_protocol is either HTTPS or SSL

instancePort number

The port on the instance to route to

instanceProtocol string

The protocol to use to the instance. Valid values are HTTP, HTTPS, TCP, or SSL

lbPort number

The port to listen on for the load balancer

lbProtocol string

The protocol to listen on. Valid values are HTTP, HTTPS, TCP, or SSL

sslCertificateId string

The ARN of an SSL certificate you have uploaded to AWS IAM. Note ECDSA-specific restrictions below. Only valid when lb_protocol is either HTTPS or SSL

instance_port int

The port on the instance to route to

instance_protocol str

The protocol to use to the instance. Valid values are HTTP, HTTPS, TCP, or SSL

lb_port int

The port to listen on for the load balancer

lb_protocol str

The protocol to listen on. Valid values are HTTP, HTTPS, TCP, or SSL

ssl_certificate_id str

The ARN of an SSL certificate you have uploaded to AWS IAM. Note ECDSA-specific restrictions below. Only valid when lb_protocol is either HTTPS or SSL

instancePort Number

The port on the instance to route to

instanceProtocol String

The protocol to use to the instance. Valid values are HTTP, HTTPS, TCP, or SSL

lbPort Number

The port to listen on for the load balancer

lbProtocol String

The protocol to listen on. Valid values are HTTP, HTTPS, TCP, or SSL

sslCertificateId String

The ARN of an SSL certificate you have uploaded to AWS IAM. Note ECDSA-specific restrictions below. Only valid when lb_protocol is either HTTPS or SSL

Import

ELBs can be imported using the name, e.g.,

 $ pulumi import aws:elasticloadbalancing/loadBalancer:LoadBalancer bar elb-production-12345

Package Details

Repository
https://github.com/pulumi/pulumi-aws
License
Apache-2.0
Notes

This Pulumi package is based on the aws Terraform Provider.