Module lb
Resources
Others
Resources
Resource ApplicationLoadBalancer
class ApplicationLoadBalancer extends ComponentResource
Provides an Application Load Balancer resource with listeners, default target group and default security group.
constructor
new ApplicationLoadBalancer(name: string, args?: ApplicationLoadBalancerArgs, opts?: pulumi.ComponentResourceOptions)
Create a ApplicationLoadBalancer resource with the given unique name, arguments, and options.
name
The unique name of the resource.args
The arguments to use to populate this resource's properties.opts
A bag of options that control this resource's behavior.
method getData
protected getData(): Promise<TData>
Retrieves the data produces by [initialize]. The data is immediately available in a
derived class’s constructor after the super(...)
call to ComponentResource
.
method getProvider
getProvider(moduleMember: string): ProviderResource | undefined
method initialize
protected initialize(args: Inputs): Promise<TData>
Can be overridden by a subclass to asynchronously initialize data for this Component
automatically when constructed. The data will be available immediately for subclass
constructors to use. To access the data use .getData
.
method isInstance
public static isInstance(obj: any): obj is ApplicationLoadBalancer
Returns true if the given object is an instance of ApplicationLoadBalancer. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.
method registerOutputs
protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void
registerOutputs registers synthetic outputs that a component has initialized, usually by allocating other child sub-resources and propagating their resulting property values.
ComponentResources can call this at the end of their constructor to indicate that they are
done creating child resources. This is not strictly necessary as this will automatically be
called after the initialize
method completes.
property defaultSecurityGroup
public defaultSecurityGroup: pulumi.Output<SecurityGroup | undefined>;
Default security group, if auto-created
property defaultTargetGroup
public defaultTargetGroup: pulumi.Output<TargetGroup>;
Default target group, if auto-created
property listeners
public listeners: pulumi.Output<Listener[] | undefined>;
Listeners created as part of this load balancer
property loadBalancer
public loadBalancer: pulumi.Output<LoadBalancer>;
Underlying Load Balancer resource
property urn
urn: Output<URN>;
urn is the stable logical URN used to distinctly address a resource, both before and after deployments.
property vpcId
public vpcId: pulumi.Output<string | undefined>;
Id of the VPC in which this load balancer is operating
Resource NetworkLoadBalancer
class NetworkLoadBalancer extends ComponentResource
Provides a Network Load Balancer resource with listeners and default target group.
constructor
new NetworkLoadBalancer(name: string, args?: NetworkLoadBalancerArgs, opts?: pulumi.ComponentResourceOptions)
Create a NetworkLoadBalancer resource with the given unique name, arguments, and options.
name
The unique name of the resource.args
The arguments to use to populate this resource's properties.opts
A bag of options that control this resource's behavior.
method getData
protected getData(): Promise<TData>
Retrieves the data produces by [initialize]. The data is immediately available in a
derived class’s constructor after the super(...)
call to ComponentResource
.
method getProvider
getProvider(moduleMember: string): ProviderResource | undefined
method initialize
protected initialize(args: Inputs): Promise<TData>
Can be overridden by a subclass to asynchronously initialize data for this Component
automatically when constructed. The data will be available immediately for subclass
constructors to use. To access the data use .getData
.
method isInstance
public static isInstance(obj: any): obj is NetworkLoadBalancer
Returns true if the given object is an instance of NetworkLoadBalancer. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.
method registerOutputs
protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void
registerOutputs registers synthetic outputs that a component has initialized, usually by allocating other child sub-resources and propagating their resulting property values.
ComponentResources can call this at the end of their constructor to indicate that they are
done creating child resources. This is not strictly necessary as this will automatically be
called after the initialize
method completes.
property defaultTargetGroup
public defaultTargetGroup: pulumi.Output<TargetGroup>;
Default target group, if auto-created
property listeners
public listeners: pulumi.Output<Listener[] | undefined>;
Listeners created as part of this load balancer
property loadBalancer
public loadBalancer: pulumi.Output<LoadBalancer>;
Underlying Load Balancer resource
property urn
urn: Output<URN>;
urn is the stable logical URN used to distinctly address a resource, both before and after deployments.
property vpcId
public vpcId: pulumi.Output<string | undefined>;
Id of the VPC in which this load balancer is operating
Resource TargetGroupAttachment
class TargetGroupAttachment extends ComponentResource
Attach an EC2 instance or Lambda to a Load Balancer. This will create required permissions if attaching to a Lambda Function.
constructor
new TargetGroupAttachment(name: string, args?: TargetGroupAttachmentArgs, opts?: pulumi.ComponentResourceOptions)
Create a TargetGroupAttachment resource with the given unique name, arguments, and options.
name
The unique name of the resource.args
The arguments to use to populate this resource's properties.opts
A bag of options that control this resource's behavior.
method getData
protected getData(): Promise<TData>
Retrieves the data produces by [initialize]. The data is immediately available in a
derived class’s constructor after the super(...)
call to ComponentResource
.
method getProvider
getProvider(moduleMember: string): ProviderResource | undefined
method initialize
protected initialize(args: Inputs): Promise<TData>
Can be overridden by a subclass to asynchronously initialize data for this Component
automatically when constructed. The data will be available immediately for subclass
constructors to use. To access the data use .getData
.
method isInstance
public static isInstance(obj: any): obj is TargetGroupAttachment
Returns true if the given object is an instance of TargetGroupAttachment. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.
method registerOutputs
protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void
registerOutputs registers synthetic outputs that a component has initialized, usually by allocating other child sub-resources and propagating their resulting property values.
ComponentResources can call this at the end of their constructor to indicate that they are
done creating child resources. This is not strictly necessary as this will automatically be
called after the initialize
method completes.
property lambdaPermission
public lambdaPermission: pulumi.Output<Permission | undefined>;
Auto-created Lambda permission, if targeting a Lambda function
property targetGroupAttachment
public targetGroupAttachment: pulumi.Output<TargetGroupAttachment>;
Underlying Target Group Attachment resource
property urn
urn: Output<URN>;
urn is the stable logical URN used to distinctly address a resource, both before and after deployments.
Others
interface ApplicationLoadBalancerArgs
interface ApplicationLoadBalancerArgs
The set of arguments for constructing a ApplicationLoadBalancer resource.
property accessLogs
accessLogs?: pulumi.Input<LoadBalancerAccessLogs>;
An Access Logs block. Access Logs documented below.
property customerOwnedIpv4Pool
customerOwnedIpv4Pool?: pulumi.Input<string>;
The ID of the customer owned ipv4 pool to use for this load balancer.
property defaultSecurityGroup
defaultSecurityGroup?: inputs.awsx.DefaultSecurityGroupArgs;
Options for creating a default security group if [securityGroups] not specified.
property defaultTargetGroup
defaultTargetGroup?: inputs.lb.TargetGroupArgs;
Options creating a default target group.
property defaultTargetGroupPort
defaultTargetGroupPort?: pulumi.Input<number>;
Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
property desyncMitigationMode
desyncMitigationMode?: pulumi.Input<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
.
property dropInvalidHeaderFields
dropInvalidHeaderFields?: pulumi.Input<boolean>;
Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application
.
property enableDeletionProtection
enableDeletionProtection?: pulumi.Input<boolean>;
If true, deletion of the load balancer will be disabled via
the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false
.
property enableHttp2
enableHttp2?: pulumi.Input<boolean>;
Indicates whether HTTP/2 is enabled in application
load balancers. Defaults to true
.
property enableWafFailOpen
enableWafFailOpen?: pulumi.Input<boolean>;
Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false
.
property idleTimeout
idleTimeout?: pulumi.Input<number>;
The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application
. Default: 60.
property internal
internal?: pulumi.Input<boolean>;
If true, the LB will be internal.
property ipAddressType
ipAddressType?: pulumi.Input<string>;
The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4
and dualstack
property listener
listener?: inputs.lb.ListenerArgs;
A listener to create. Only one of [listener] and [listeners] can be specified.
property listeners
listeners?: ListenerArgs[];
List of listeners to create. Only one of [listener] and [listeners] can be specified.
property name
name?: pulumi.Input<string>;
The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters,
must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified,
this provider will autogenerate a name beginning with tf-lb
.
property namePrefix
namePrefix?: pulumi.Input<string>;
Creates a unique name beginning with the specified prefix. Conflicts with name
.
property securityGroups
securityGroups?: pulumi.Input<pulumi.Input<string>[]>;
A list of security group IDs to assign to the LB. Only valid for Load Balancers of type application
.
property subnetIds
subnetIds?: pulumi.Input<pulumi.Input<string>[]>;
A list of subnet IDs to attach to the LB. Subnets
cannot be updated for Load Balancers of type network
. Changing this value
for load balancers of type network
will force a recreation of the resource.
property subnetMappings
subnetMappings?: pulumi.Input<pulumi.Input<LoadBalancerSubnetMapping>[]>;
A subnet mapping block as documented below.
property subnets
subnets?: pulumi.Input<pulumi.Input<Subnet>[]>;
A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
property tags
tags?: pulumi.Input<{[key: string]: pulumi.Input<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.
interface NetworkLoadBalancerArgs
interface NetworkLoadBalancerArgs
The set of arguments for constructing a NetworkLoadBalancer resource.
property accessLogs
accessLogs?: pulumi.Input<LoadBalancerAccessLogs>;
An Access Logs block. Access Logs documented below.
property customerOwnedIpv4Pool
customerOwnedIpv4Pool?: pulumi.Input<string>;
The ID of the customer owned ipv4 pool to use for this load balancer.
property defaultTargetGroup
defaultTargetGroup?: inputs.lb.TargetGroupArgs;
Options creating a default target group.
property defaultTargetGroupPort
defaultTargetGroupPort?: pulumi.Input<number>;
Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
property desyncMitigationMode
desyncMitigationMode?: pulumi.Input<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
.
property dropInvalidHeaderFields
dropInvalidHeaderFields?: pulumi.Input<boolean>;
Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application
.
property enableCrossZoneLoadBalancing
enableCrossZoneLoadBalancing?: pulumi.Input<boolean>;
If true, cross-zone load balancing of the load balancer will be enabled.
This is a network
load balancer feature. Defaults to false
.
property enableDeletionProtection
enableDeletionProtection?: pulumi.Input<boolean>;
If true, deletion of the load balancer will be disabled via
the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false
.
property enableWafFailOpen
enableWafFailOpen?: pulumi.Input<boolean>;
Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false
.
property idleTimeout
idleTimeout?: pulumi.Input<number>;
The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application
. Default: 60.
property internal
internal?: pulumi.Input<boolean>;
If true, the LB will be internal.
property ipAddressType
ipAddressType?: pulumi.Input<string>;
The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4
and dualstack
property listener
listener?: inputs.lb.ListenerArgs;
A listener to create. Only one of [listener] and [listeners] can be specified.
property listeners
listeners?: ListenerArgs[];
List of listeners to create. Only one of [listener] and [listeners] can be specified.
property name
name?: pulumi.Input<string>;
The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters,
must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified,
this provider will autogenerate a name beginning with tf-lb
.
property namePrefix
namePrefix?: pulumi.Input<string>;
Creates a unique name beginning with the specified prefix. Conflicts with name
.
property subnetIds
subnetIds?: pulumi.Input<pulumi.Input<string>[]>;
A list of subnet IDs to attach to the LB. Subnets
cannot be updated for Load Balancers of type network
. Changing this value
for load balancers of type network
will force a recreation of the resource.
property subnetMappings
subnetMappings?: pulumi.Input<pulumi.Input<LoadBalancerSubnetMapping>[]>;
A subnet mapping block as documented below.
property subnets
subnets?: pulumi.Input<pulumi.Input<Subnet>[]>;
A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
property tags
tags?: pulumi.Input<{[key: string]: pulumi.Input<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.
interface TargetGroupAttachmentArgs
interface TargetGroupAttachmentArgs
The set of arguments for constructing a TargetGroupAttachment resource.
property instance
instance?: pulumi.Input<Instance>;
EC2 Instance to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided.
property instanceId
instanceId?: pulumi.Input<string>;
ID of an EC2 Instance to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided.
property lambda
lambda?: pulumi.Input<Function>;
Lambda Function to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided.
property lambdaArn
lambdaArn?: pulumi.Input<string>;
ARN of a Lambda Function to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided.
property targetGroup
targetGroup?: pulumi.Input<TargetGroup>;
Target Group to attach to. Exactly one of [targetGroup] or [targetGroupArn] must be specified.
property targetGroupArn
targetGroupArn?: pulumi.Input<string>;
ARN of the Target Group to attach to. Exactly one of [targetGroup] or [targetGroupArn] must be specified.
Thank you for your feedback!
If you have a question about how to use Pulumi, reach out in Community Slack.
Open an issue on GitHub to report a problem or suggest an improvement.