Module lb

Pulumi Elastic Load Balancing Components

Pulumi’s API’s for simplifying Elastic Load Balancing. The API provides a simple way to create either Application (ALB) or Network (NLB) load balancers, and their associated Target Groups and Listeners. For more details, see Application Load Balancers and Network Load Balancers.

Network Load Balancer

To create an NLB

import * as aws from "@pulumi/aws";
import * as awsx from "@pulumi/awsx";

// Creates an NLB associated with the default Vpc for this region.  Pass 'external: true' to make the NLB
// externally accessible
const nlb1 = new awsx.lb.NetworkLoadBalancer("nlb1", { external: true });

// To create an NLB for a different Vpc, simply pass it in:
const vpc = new awsx.ec2.Vpc(...);
const nlb2 = new awsx.lb.NetworkLoadBalancer("nlb2", { vpc, external: true });

Once created, an NLB can be used to create both Listeners and TargetGroups. By default, a Listener needs at least one TargetGroup that it can route requests to. So, if a Listener is created without specifying a TargetGroup, one will be automatically created. For example:

// continuing from above.  Manually create the target group and the listener.
const tg1 = nlb1.createTargetGroup("tg1", { port: 8080 });
const listener1 = tg1.createListener("listener1", { port: 80 });

// or, create a listener and have the target group automatically created.  In this case, the port
// will automatically be the same for the listener and target group.
const listener2 = nlb1.createListener("listener2", { port: 80 });

// in both these cases the 'defaultAction' of the Listeners will be to 'forward' requests to the explicit
// or implicit target group they are associated with.  To have the listener do something different, supply
// a preferred 'defaultAction' manually.  For example:
const listener3 = nlb1.createListener(`redirecthttp`, {
    port: 80,
    protocol: "HTTP",
    defaultAction: {
        type: "redirect",
        redirect: {
            protocol: "HTTPS",
            port: "443",
            statusCode: "HTTP_301",
        },
    },
});

Listeners and TargetGroups are automatically setup to operate well with the awsx ecs module. Specifically, once a Listener (or an associated TargetGroup) has been created, it can be used directly by the ECS module to automatically setup the correct information for both an ECS Container or Service. Specifically, a Listener or TargetGroup can be provided in a Container definition. If so, it (and its associated LoadBalancer) will be queried to map the right ports and automatically connect to the load balancer. This can be done like so:

// Continuing from above.

// Need a cluster for ecs or fargate services to pull instances from.  This cluster will be
// associated with the default VPC for the region.  To override that, pass in a VPC manually.
const cluster = new awsx.ecs.Cluster("testing");

// Create a listener to handle requests coming in on port 80.  This will automatically create a
// target group that also forwards the requests to targets in it at the same port.
const nginxListener = nlb1.createListener("nginx", { port: 80 });

// Create a Service pointing to the well known 'nginx' image.  Supply the listener we just created
// in the `portMappings` section.  This will both properly connect the service and launched instances
// to the target group.
//
// For a Fargate service just replace this with `new awsx.ecs.FargateService`.
const nginx = new awsx.ecs.EC2Service("examples-nginx", {
    cluster,
    taskDefinitionArgs: {
        containers: {
            nginx: {
                image: "nginx",
                memory: 128,
                portMappings: [nginxListener],
            },
        },
    },
    desiredCount: 2,
});

Application Load Balancers

ALBs follow the same pattern above as NLBs. To create ad use them, simply replace usages of Network above with Application. i.e. instead of new awsx.lb.NetworkLoadBalancer use new awsx.lb.ApplicationLoadBalancer.

For detailed reference documentation, please visit the API docs.

namespace metrics

namespace metrics.application

namespace metrics.network

Resources

Others

namespace metrics

interface CoreMetricChange

interface CoreMetricChange extends MetricChange

property availabilityZone

availabilityZone?: undefined | string;

Filters the metric data by Availability Zone.

property color

color?: pulumi.Input<string>;

The six-digit HTML hex color code to be used for this metric.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

property dimensions

dimensions?: pulumi.Input<Record<string, any>>;

The new dimension for this metric. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be cleared.

property extendedStatistic

extendedStatistic?: pulumi.Input<number>;

The new percentile statistic for the metric associated with the alarm. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default.

property label

label?: pulumi.Input<string>;

The label to display for this metric in the graph legend. If this is not specified, the metric is given an autogenerated label that distinguishes it from the other metrics in the widget.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

property loadBalancer

loadBalancer?: aws.lb.LoadBalancer | LoadBalancer;

Filters the metric data by load balancer.

property period

period?: pulumi.Input<number>;

The new period in seconds over which the specified stat is applied. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default (300s).

property statistic

statistic?: pulumi.Input<MetricStatistic>;

The new statistic to apply to the alarm’s associated metric. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default.

property targetGroup

targetGroup?: aws.lb.TargetGroup | TargetGroup;

Filters the metric data by target group. If this is a [NetworkTargetGroup] then [loadBalancer] does not have to be provided. If this is an [aws.lb.TargetGroup] then [loadBalancer] must be provided.

property unit

unit?: pulumi.Input<MetricUnit>;

The new unit for this metric. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default.

property visible

visible?: pulumi.Input<boolean>;

Set this to true to have the metric appear in the graph, or false to have it be hidden. The default is true.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

property yAxis

yAxis?: pulumi.Input<"left" | "right">;

Where on the graph to display the y-axis for this metric. The default is left.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

function createDimensions

createDimensions(change: CoreMetricChange): { ... }

namespace metrics.application

function activeConnectionCount

activeConnectionCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of concurrent TCP connections active from clients to the load balancer and from the load balancer to targets. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum.

Dimensions LoadBalancer

type ApplicationMetricName

type ApplicationMetricName = "ActiveConnectionCount" | "ClientTLSNegotiationErrorCount" | "ConsumedLCUs" | "HTTP_Fixed_Response_Count" | "HTTP_Redirect_Count" | "HTTP_Redirect_Url_Limit_Exceeded_Count" | "HTTPCode_ELB_3XX_Count" | "HTTPCode_ELB_4XX_Count" | "HTTPCode_ELB_5XX_Count" | "HTTPCode_ELB_500_Count" | "HTTPCode_ELB_502_Count" | "HTTPCode_ELB_503_Count" | "HTTPCode_ELB_504_Count" | "IPv6ProcessedBytes" | "IPv6RequestCount" | "NewConnectionCount" | "ProcessedBytes" | "RejectedConnectionCount" | "RequestCount" | "RuleEvaluations" | "HealthyHostCount" | "HTTPCode_Target_2XX_Count" | "HTTPCode_Target_3XX_Count" | "HTTPCode_Target_4XX_Count" | "HTTPCode_Target_5XX_Count" | "NonStickyRequestCount" | "RequestCountPerTarget" | "TargetConnectionErrorCount" | "TargetResponseTime" | "TargetTLSNegotiationErrorCount" | "UnHealthyHostCount";

function clientTLSNegotiationErrorCount

clientTLSNegotiationErrorCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of TLS connections initiated by the client that did not establish a session with the load balancer. Possible causes include a mismatch of ciphers or protocols. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum.

Dimensions: AvailabilityZone, LoadBalancer

function consumedLCUs

consumedLCUs(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of load balancer capacity units (LCU) used by your load balancer. You pay for the number of LCUs that you use per hour. For more information, see Elastic Load Balancing Pricing. Reporting criteria: Always reported

Statistics: All

Dimensions: LoadBalancer

interface ElasticLoadBalancingV2MetricChange

interface ElasticLoadBalancingV2MetricChange extends MetricChange

property availabilityZone

availabilityZone?: undefined | string;

Filters the metric data by Availability Zone.

property color

color?: pulumi.Input<string>;

The six-digit HTML hex color code to be used for this metric.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

property dimensions

dimensions?: pulumi.Input<Record<string, any>>;

The new dimension for this metric. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be cleared.

property extendedStatistic

extendedStatistic?: pulumi.Input<number>;

The new percentile statistic for the metric associated with the alarm. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default.

property label

label?: pulumi.Input<string>;

The label to display for this metric in the graph legend. If this is not specified, the metric is given an autogenerated label that distinguishes it from the other metrics in the widget.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

property loadBalancer

loadBalancer?: aws.lb.LoadBalancer | ApplicationLoadBalancer;

Filters the metric data by load balancer.

property period

period?: pulumi.Input<number>;

The new period in seconds over which the specified stat is applied. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default (300s).

property statistic

statistic?: pulumi.Input<MetricStatistic>;

The new statistic to apply to the alarm’s associated metric. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default.

property targetGroup

targetGroup?: aws.lb.TargetGroup | ApplicationTargetGroup;

Filters the metric data by target group. If this is an [ApplicationTargetGroup] then [loadBalancer] does not have to be provided. If this is an [aws.lb.TargetGroup] then [loadBalancer] must be provided.

property unit

unit?: pulumi.Input<MetricUnit>;

The new unit for this metric. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default.

property visible

visible?: pulumi.Input<boolean>;

Set this to true to have the metric appear in the graph, or false to have it be hidden. The default is true.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

property yAxis

yAxis?: pulumi.Input<"left" | "right">;

Where on the graph to display the y-axis for this metric. The default is left.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

function healthyHostCount

healthyHostCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of targets that are considered healthy. Reporting criteria: Reported if health checks are enabled

Statistics: The most useful statistics are Average, Minimum, and Maximum.

Dimensions: TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function httpCodeELB3XXCount

httpCodeELB3XXCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP 3XX redirection codes that originate from the load balancer. Reporting criteria: There is a nonzero value

Statistics: The only meaningful statistic is Sum.

Dimensions: LoadBalancer

function httpCodeELB4XXCount

httpCodeELB4XXCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP 4XX client error codes that originate from the load balancer. Client errors are generated when requests are malformed or incomplete. These requests have not been received by the target. This count does not include any response codes generated by the targets. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer

function httpCodeELB500Count

httpCodeELB500Count(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP 500 error codes that originate from the load balancer.

Reporting criteria: There is a nonzero value

Statistics: The only meaningful statistic is Sum.

function httpCodeELB502Count

httpCodeELB502Count(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP 502 error codes that originate from the load balancer. Reporting criteria: There is a nonzero value

Statistics: The only meaningful statistic is Sum.

function httpCodeELB503Count

httpCodeELB503Count(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP 503 error codes that originate from the load balancer. Reporting criteria: There is a nonzero value

Statistics: The only meaningful statistic is Sum.

function httpCodeELB504Count

httpCodeELB504Count(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP 504 error codes that originate from the load balancer. Reporting criteria: There is a nonzero value

Statistics: The only meaningful statistic is Sum.

function httpCodeELB5XXCount

httpCodeELB5XXCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes generated by the targets. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer

function httpCodeTarget2XXCount

httpCodeTarget2XXCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function httpCodeTarget3XXCount

httpCodeTarget3XXCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function httpCodeTarget4XXCount

httpCodeTarget4XXCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function httpCodeTarget5XXCount

httpCodeTarget5XXCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function httpFixedResponseCount

httpFixedResponseCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of fixed-response actions that were successful. Reporting criteria: There is a nonzero value

Statistics: The only meaningful statistic is Sum.

Dimensions: LoadBalancer

function httpRedirectCount

httpRedirectCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of redirect actions that were successful. Reporting criteria: There is a nonzero value

Statistics: The only meaningful statistic is Sum.

Dimensions: LoadBalancer

function httpRedirectUrlLimitExceededCount

httpRedirectUrlLimitExceededCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of redirect actions that couldn’t be completed because the URL in the response location header is larger than 8K. Reporting criteria: There is a nonzero value

Statistics: The only meaningful statistic is Sum.

Dimensions: LoadBalancer

function ipv6ProcessedBytes

ipv6ProcessedBytes(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of bytes processed by the load balancer over IPv6. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum.

Dimensions: LoadBalancer

function ipv6RequestCount

ipv6RequestCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of IPv6 requests received by the load balancer. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function metric

metric(metricName: ApplicationMetricName, change: ElasticLoadBalancingV2MetricChange): Metric

Creates an AWS/ApplicationELB metric with the requested [metricName]. See https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html for list of all metric-names.

Elastic Load Balancing publishes data points to Amazon CloudWatch for your load balancers and your targets. CloudWatch enables you to retrieve statistics about those data points as an ordered set of time-series data, known as metrics. Think of a metric as a variable to monitor, and the data points as the values of that variable over time. For example, you can monitor the total number of healthy targets for a load balancer over a specified time period. Each data point has an associated time stamp and an optional unit of measurement.

You can use metrics to verify that your system is performing as expected. For example, you can create a CloudWatch alarm to monitor a specified metric and initiate an action (such as sending a notification to an email address) if the metric goes outside what you consider an acceptable range.

Elastic Load Balancing reports metrics to CloudWatch only when requests are flowing through the load balancer. If there are requests flowing through the load balancer, Elastic Load Balancing measures and sends its metrics in 60-second intervals. If there are no requests flowing through the load balancer or no data for a metric, the metric is not reported.

To filter the metrics for your Application Load Balancer, use the following dimensions. 1. “AvailabilityZone”: Filters the metric data by Availability Zone. 2. “LoadBalancer”: Filters the metric data by load balancer. Specify the load balancer using LoadBalancer.arnSuffix. 3. “TargetGroup”: Filters the metric data by target group. Specify the target group using TargetGroup.arnSuffix.

function newConnectionCount

newConnectionCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of new TCP connections established from clients to the load balancer and from the load balancer to targets. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum.

Dimensions: LoadBalancer

function nonStickyRequestCount

nonStickyRequestCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of requests where the load balancer chose a new target because it couldn’t use an existing sticky session. For example, the request was the first request from a new client and no stickiness cookie was presented, a stickiness cookie was presented but it did not specify a target that was registered with this target group, the stickiness cookie was malformed or expired, or an internal error prevented the load balancer from reading the stickiness cookie. Reporting criteria: Stickiness is enabled on the target group.

Statistics: The only meaningful statistic is Sum.

function processedBytes

processedBytes(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of bytes processed by the load balancer over IPv4 and IPv6. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum.

Dimensions: LoadBalancer

function rejectedConnectionCount

rejectedConnectionCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of connections that were rejected because the load balancer had reached its maximum number of connections. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer

function requestCount

requestCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of requests processed over IPv4 and IPv6. This count includes only the requests with a response generated by a target of the load balancer. Reporting criteria: Always reported

Statistics: The most useful statistic is Sum.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function requestCountPerTarget

requestCountPerTarget(change?: ElasticLoadBalancingV2MetricChange): Metric

The average number of requests received by each target in a target group. You must specify the target group using the TargetGroup dimension. This metric does not apply if the target is a Lambda function. Reporting criteria: Always reported

Statistics: The only valid statistic is Sum. Note that this represents the average not the sum.

Dimensions: TargetGroup TargetGroup, LoadBalancer

function ruleEvaluations

ruleEvaluations(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of rules processed by the load balancer given a request rate averaged over an hour. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum.

Dimensions: LoadBalancer

function targetConnectionErrorCount

targetConnectionErrorCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of connections that were not successfully established between the load balancer and target. This metric does not apply if the target is a Lambda function. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function targetResponseTime

targetResponseTime(change?: ElasticLoadBalancingV2MetricChange): Metric

The time elapsed, in seconds, after the request leaves the load balancer until a response from the target is received. This is equivalent to the target_processing_time field in the access logs. Reporting criteria: There is a nonzero value

Statistics: The most useful statistics are Average and pNN.NN (percentiles).

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function targetTLSNegotiationErrorCount

targetTLSNegotiationErrorCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of TLS connections initiated by the load balancer that did not establish a session with the target. Possible causes include a mismatch of ciphers or protocols. This metric does not apply if the target is a Lambda function. Reporting criteria: There is a nonzero value

Statistics: The most useful statistic is Sum.

Dimensions: LoadBalancer AvailabilityZone, LoadBalancer TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

function unHealthyHostCount

unHealthyHostCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of targets that are considered unhealthy. Reporting criteria: Reported if health checks are enabled

Statistics: The most useful statistics are Average, Minimum, and Maximum.

Dimensions: TargetGroup, LoadBalancer TargetGroup, AvailabilityZone, LoadBalancer

namespace metrics.network

function activeFlowCount

activeFlowCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of concurrent flows (or connections) from clients to targets. This metric includes connections in the SYN_SENT and ESTABLISHED states. TCP connections are not terminated at the load balancer, so a client opening a TCP connection to a target counts as a single flow.

Statistics: The most useful statistics are Average, Maximum, and Minimum.

function activeFlowCount_TLS

activeFlowCount_TLS(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of concurrent TLS flows (or connections) from clients to targets. This metric includes only connections in the ESTABLISHED states.

Statistics: The most useful statistics are Average, Maximum, and Minimum.

function clientTLSNegotiationErrorCount

clientTLSNegotiationErrorCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of TLS handshakes that failed during negotiation between a client and a TLS listener.

Statistics: The most useful statistic is Sum.

function consumedLCUs

consumedLCUs(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of load balancer capacity units (LCU) used by your load balancer. You pay for the number of LCUs that you use per hour. For more information, see Elastic Load Balancing Pricing.

interface ElasticLoadBalancingV2MetricChange

interface ElasticLoadBalancingV2MetricChange extends MetricChange

property availabilityZone

availabilityZone?: undefined | string;

Filters the metric data by Availability Zone.

property color

color?: pulumi.Input<string>;

The six-digit HTML hex color code to be used for this metric.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

property dimensions

dimensions?: pulumi.Input<Record<string, any>>;

The new dimension for this metric. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be cleared.

property extendedStatistic

extendedStatistic?: pulumi.Input<number>;

The new percentile statistic for the metric associated with the alarm. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default.

property label

label?: pulumi.Input<string>;

The label to display for this metric in the graph legend. If this is not specified, the metric is given an autogenerated label that distinguishes it from the other metrics in the widget.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

property loadBalancer

loadBalancer?: aws.lb.LoadBalancer | NetworkLoadBalancer;

Filters the metric data by load balancer.

property period

period?: pulumi.Input<number>;

The new period in seconds over which the specified stat is applied. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default (300s).

property statistic

statistic?: pulumi.Input<MetricStatistic>;

The new statistic to apply to the alarm’s associated metric. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default.

property targetGroup

targetGroup?: aws.lb.TargetGroup | NetworkTargetGroup;

Filters the metric data by target group. If this is a [NetworkTargetGroup] then [loadBalancer] does not have to be provided. If this is an [aws.lb.TargetGroup] then [loadBalancer] must be provided.

property unit

unit?: pulumi.Input<MetricUnit>;

The new unit for this metric. If this object is missing this property, then no change will be made. However, if the property is there by set to [undefined] then the value will be set to the default.

property visible

visible?: pulumi.Input<boolean>;

Set this to true to have the metric appear in the graph, or false to have it be hidden. The default is true.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

property yAxis

yAxis?: pulumi.Input<"left" | "right">;

Where on the graph to display the y-axis for this metric. The default is left.

Only used if this metric is displayed in a [Dashboard] with a [MetricWidget].

function healthyHostCount

healthyHostCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of targets that are considered healthy.

Statistics: The most useful statistics are Maximum and Minimum.

function metric

metric(metricName: NetworkMetricName, change: ElasticLoadBalancingV2MetricChange): Metric

Creates an AWS/NetworkELB metric with the requested [metricName]. See https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html for list of all metric-names.

Elastic Load Balancing publishes data points to Amazon CloudWatch for your load balancers and your targets. CloudWatch enables you to retrieve statistics about those data points as an ordered set of time-series data, known as metrics. Think of a metric as a variable to monitor, and the data points as the values of that variable over time. For example, you can monitor the total number of healthy targets for a load balancer over a specified time period. Each data point has an associated time stamp and an optional unit of measurement.

You can use metrics to verify that your system is performing as expected. For example, you can create a CloudWatch alarm to monitor a specified metric and initiate an action (such as sending a notification to an email address) if the metric goes outside what you consider an acceptable range.

Elastic Load Balancing reports metrics to CloudWatch only when requests are flowing through the load balancer. If there are requests flowing through the load balancer, Elastic Load Balancing measures and sends its metrics in 60-second intervals. If there are no requests flowing through the load balancer or no data for a metric, the metric is not reported.

To filter the metrics for your Application Load Balancer, use the following dimensions. 1. “AvailabilityZone”: Filters the metric data by Availability Zone. 2. “LoadBalancer”: Filters the metric data by load balancer. Specify the load balancer using LoadBalancer.arnSuffix. 3. “TargetGroup”: Filters the metric data by target group. Specify the target group using TargetGroup.arnSuffix.

type NetworkMetricName

type NetworkMetricName = "ActiveFlowCount" | "ActiveFlowCount_TLS" | "ClientTLSNegotiationErrorCount" | "ConsumedLCUs" | "HealthyHostCount" | "NewFlowCount" | "NewFlowCount_TLS" | "ProcessedBytes" | "ProcessedBytes_TLS" | "TargetTLSNegotiationErrorCount" | "TCP_Client_Reset_Count" | "TCP_ELB_Reset_Count" | "TCP_Target_Reset_Count" | "UnHealthyHostCount";

function newFlowCount

newFlowCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of new flows (or connections) established from clients to targets in the time period.

Statistics: The most useful statistic is Sum.

function newFlowCountTLS

newFlowCountTLS(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of new TLS flows (or connections) established from clients to targets in the time period.

Statistics: The most useful statistic is Sum.

function processedBytes

processedBytes(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of bytes processed by the load balancer, including TCP/IP headers.

Statistics: The most useful statistic is Sum.

function processedBytesTLS

processedBytesTLS(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of bytes processed by TLS listeners.

Statistics: The most useful statistic is Sum.

function targetTLSNegotiationErrorCount

targetTLSNegotiationErrorCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of TLS handshakes that failed during negotiation between a TLS listener and a target.

Statistics: The most useful statistic is Sum.

function tcpClientResetCount

tcpClientResetCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of reset (RST) packets sent from a client to a target. These resets are generated by the client and forwarded by the load balancer.

Statistics: The most useful statistic is Sum.

function tcpELBResetCount

tcpELBResetCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of reset (RST) packets generated by the load balancer.

Statistics: The most useful statistic is Sum.

function tcpTargetResetCount

tcpTargetResetCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The total number of reset (RST) packets sent from a target to a client. These resets are generated by the target and forwarded by the load balancer.

Statistics: The most useful statistic is Sum.

function unhealthyHostCount

unhealthyHostCount(change?: ElasticLoadBalancingV2MetricChange): Metric

The number of targets that are considered unhealthy.

Statistics: The most useful statistics are Maximum and Minimum.

Resources

Resource Listener

 implements ContainerPortMappingProvider, ContainerLoadBalancerProvider

constructor

new Listener(type: string, name: string, defaultListenerAction: ListenerDefaultAction | undefined, args: ListenerArgs, opts: pulumi.ComponentResourceOptions)

method addListenerRule

public addListenerRule(name: string, args: x.lb.ListenerRuleArgs, opts?: pulumi.ComponentResourceOptions): ListenerRule

method attachTarget

public attachTarget(name: string, args: mod.LoadBalancerTarget, opts: pulumi.CustomResourceOptions): TargetGroupAttachment

Attaches a target to the defaultTargetGroup for this Listener.

method containerLoadBalancer

public containerLoadBalancer(name: string, parent: pulumi.Resource): ContainerLoadBalancer | Promise<ContainerLoadBalancer> | OutputInstance<ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(name: string, parent: pulumi.Resource): PortMapping | Promise<PortMapping> | OutputInstance<PortMapping>

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. 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

property defaultTargetGroup

public defaultTargetGroup?: x.lb.TargetGroup;

property endpoint

public endpoint: pulumi.Output<ListenerEndpoint>;

property listener

public listener: aws.lb.Listener;

property loadBalancer

public loadBalancer: x.lb.LoadBalancer;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

Resource ListenerRule

class ListenerRule extends ComponentResource

The rules that you define for your listener determine how the load balancer routes requests to the targets in one or more target groups.

Each rule consists of a priority, one or more actions, an optional host condition, and an optional path condition. For more information, see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html

constructor

new ListenerRule(name: string, listener: x.lb.Listener, args: ListenerRuleArgs, opts: pulumi.ComponentResourceOptions)

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. 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

property listenerRule

public listenerRule: aws.lb.ListenerRule;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

Resource LoadBalancer

class LoadBalancer extends ComponentResource

constructor

new LoadBalancer(type: string, name: string, args: LoadBalancerArgs, opts?: pulumi.ComponentResourceOptions)

method attachTarget

public attachTarget(name: string, args: LoadBalancerTarget, opts: pulumi.CustomResourceOptions): TargetGroupAttachment

Attaches a target to the first listener of this LoadBalancer. If there are multiple listeners you can add a target to specific listener to by calling .attachTarget directly on it.

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. 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

property listeners

public listeners: mod.Listener[] =  [];

property loadBalancer

public loadBalancer: aws.lb.LoadBalancer;

property securityGroups

public securityGroups: x.ec2.SecurityGroup[];

property targetGroups

public targetGroups: mod.TargetGroup[] =  [];

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

Resource TargetGroup

 implements ContainerPortMappingProvider, ContainerLoadBalancerProvider, ListenerDefaultAction

constructor

new TargetGroup(type: string, name: string, loadBalancer: mod.LoadBalancer, args: TargetGroupArgs, opts: pulumi.ComponentResourceOptions)

method attachTarget

public attachTarget(name: string, args: mod.LoadBalancerTarget, opts: pulumi.CustomResourceOptions): TargetGroupAttachment

Attaches a target to this target group. See Register-Targets for more details.

method containerLoadBalancer

public containerLoadBalancer(): pulumi.Input<x.ecs.ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(): pulumi.Input<aws.ecs.PortMapping>

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method listenerDefaultAction

public listenerDefaultAction(): pulumi.Input<mod.ListenerDefaultActionArgs>

method registerListener

public registerListener(listener: x.lb.Listener): void

Do not call directly. Intended for use by [Listener] and [ListenerRule]

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property listeners

public listeners: x.lb.Listener[] =  [];

property loadBalancer

public loadBalancer: mod.LoadBalancer;

property targetGroup

public targetGroup: aws.lb.TargetGroup;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

Resource TargetGroupAttachment

class TargetGroupAttachment extends ComponentResource

constructor

new TargetGroupAttachment(name: string, targetGroup: mod.TargetGroup, args: mod.LoadBalancerTarget, opts: pulumi.ComponentResourceOptions)

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. 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

property func

public func?: aws.lambda.Function;

property permission

public permission?: aws.lambda.Permission;

property targetGroupAttachment

public targetGroupAttachment: aws.lb.TargetGroupAttachment;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

Others

class ApplicationListener

 implements ContainerPortMappingProvider, ContainerLoadBalancerProvider

constructor

new ApplicationListener(name: string, args: ApplicationListenerArgs, opts: pulumi.ComponentResourceOptions)

method addListenerRule

public addListenerRule(name: string, args: x.lb.ListenerRuleArgs, opts?: pulumi.ComponentResourceOptions): ListenerRule

method attachTarget

public attachTarget(name: string, args: mod.LoadBalancerTarget, opts: pulumi.CustomResourceOptions): TargetGroupAttachment

Attaches a target to the defaultTargetGroup for this Listener.

method containerLoadBalancer

public containerLoadBalancer(name: string, parent: pulumi.Resource): ContainerLoadBalancer | Promise<ContainerLoadBalancer> | OutputInstance<ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(name: string, parent: pulumi.Resource): PortMapping | Promise<PortMapping> | OutputInstance<PortMapping>

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. 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

property defaultTargetGroup

public defaultTargetGroup?: x.lb.ApplicationTargetGroup;

property endpoint

public endpoint: pulumi.Output<ListenerEndpoint>;

property listener

public listener: aws.lb.Listener;

property loadBalancer

public loadBalancer: ApplicationLoadBalancer;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

interface ApplicationListenerArgs

interface ApplicationListenerArgs

property certificateArn

certificateArn?: pulumi.Input<string>;

The ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws_lb_listener_certificate resource.

property defaultAction

defaultAction?: pulumi.Input<mod.ListenerDefaultActionArgs> | x.lb.ListenerDefaultAction;

An Action block. If neither this nor [defaultActions] is provided, a suitable defaultAction will be chosen that forwards to a new [ApplicationTargetGroup] created from [port].

Do not provide both [defaultAction] and [defaultActions].

property defaultActions

defaultActions?: pulumi.Input<pulumi.Input<mod.ListenerDefaultActionArgs>[]>;

An list of Action blocks. If neither this nor [defaultActions] is provided, a suitable defaultAction will be chosen that forwards to a new [ApplicationTargetGroup] created from [port].

Do not provide both [defaultAction] and [defaultActions].

property external

external?: undefined | false | true;

If the listener should be available externally.

If this is [true] and the LoadBalancer for this Listener is [external=true], then this listener is available to the entire internet. If this is [true] and the LoadBalancer is [external=false], then this listener is available to everything in the LoadBalancer’s VPC. In both cases, the security groups for the ALB will all get ingress rules to the port for this listener from any IPv4 location.

If this is [false] then access will controlled entirely by the egress and ingress rules of the security groups of the LoadBalancer. No changes will be made to the security groups of the ALB.

Defaults to [true].

property loadBalancer

loadBalancer?: ApplicationLoadBalancer;

The load balancer this listener is associated with. If not provided, a new load balancer will be automatically created.

property name

name?: undefined | string;

An explicit name to use for dependent resources. Specifically, if a LoadBalancer or TargetGroup is not provided, this name will be used to name those resources.

property port

port?: pulumi.Input<number>;

The port. Specify a value from 1 to 65535. Computed from “protocol” if not provided.

property protocol

protocol?: pulumi.Input<ApplicationProtocol>;

The protocol. Valid values are HTTP, HTTPS. Computed from “port” if not provided.

property sslPolicy

sslPolicy?: pulumi.Input<string>;

The name of the SSL Policy for the listener. Required if protocol is HTTPS.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

class ApplicationLoadBalancer

class ApplicationLoadBalancer extends LoadBalancer

A application load balancer serves as the single point of contact for clients. The load balancer distributes incoming application traffic across multiple targets, such as EC2 instances, in multiple Availability Zones. This increases the availability of your application. You add one or more listeners to your load balancer.

See https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html for more details.

constructor

new ApplicationLoadBalancer(name: string, args: ApplicationLoadBalancerArgs, opts: pulumi.ComponentResourceOptions)

method attachTarget

public attachTarget(name: string, args: LoadBalancerTarget, opts: pulumi.CustomResourceOptions): TargetGroupAttachment

Attaches a target to the first listener of this LoadBalancer. If there are multiple listeners you can add a target to specific listener to by calling .attachTarget directly on it.

method createListener

public createListener(name: string, args: ApplicationListenerArgs, opts: pulumi.ComponentResourceOptions): ApplicationListener

Creates a new listener for this [ApplicationLoadBalancer] see ApplicationListener for more details.

method createTargetGroup

public createTargetGroup(name: string, args: ApplicationTargetGroupArgs, opts: pulumi.ComponentResourceOptions): ApplicationTargetGroup

Creates a target group for this [ApplicationLoadBalancer] see ApplicationTargetGroup for more details.

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. 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

property listeners

public listeners: ApplicationListener[];

property loadBalancer

public loadBalancer: aws.lb.LoadBalancer;

property securityGroups

public securityGroups: x.ec2.SecurityGroup[];

property targetGroups

public targetGroups: ApplicationTargetGroup[];

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

interface ApplicationLoadBalancerArgs

interface ApplicationLoadBalancerArgs

property accessLogs

accessLogs?: undefined | LoadBalancerAccessLogs | Promise<LoadBalancerAccessLogs> | OutputInstance<LoadBalancerAccessLogs>;

An Access Logs block. Access Logs documented below.

property enableDeletionProtection

enableDeletionProtection?: pulumi.Input<boolean>;

If true, deletion of the load balancer will be disabled via the AWS API. This will prevent Terraform from deleting the load balancer. Defaults to false.

property enableHttp2

enableHttp2?: pulumi.Input<boolean>;

Indicates whether HTTP/2 is enabled. Defaults to true.

property external

external?: undefined | false | true;

Whether or not the load balancer is exposed to the internet. Defaults to true if unspecified.

property idleTimeout

idleTimeout?: pulumi.Input<number>;

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

property ipAddressType

ipAddressType?: pulumi.Input<"ipv4" | "dualstack">;

The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack

property name

name?: undefined | string;

The name of the LoadBalancer. 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, the [name] parameter passed into the LoadBalancer constructor will be hashed and used as the name.

property securityGroups

securityGroups?: x.ec2.SecurityGroupOrId[];

A list of security group IDs to assign to the ALB. If not provided, a default instance will be created for the ALB. To prevent a default instance from being created, pass in an empty array here.

property subnetMappings

subnetMappings?: undefined | LoadBalancerSubnetMapping | Promise<LoadBalancerSubnetMapping> | OutputInstance<LoadBalancerSubnetMapping>[] | Promise<LoadBalancerSubnetMapping | Promise<LoadBalancerSubnetMapping> | OutputInstance<LoadBalancerSubnetMapping>[]> | OutputInstance<LoadBalancerSubnetMapping | Promise<LoadBalancerSubnetMapping> | OutputInstance<LoadBalancerSubnetMapping>[]>;

A subnet mapping block as documented below.

property subnets

subnets?: pulumi.Input<pulumi.Input<string>[]> | x.lb.LoadBalancerSubnets;

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 tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

type ApplicationProtocol

type ApplicationProtocol = "HTTP" | "HTTPS";

class ApplicationTargetGroup

 implements ContainerPortMappingProvider, ContainerLoadBalancerProvider, ListenerDefaultAction

Each target group routes requests to one or more registered targets, such as EC2 instances, using the protocol and port number that you specify. You can register a target with multiple target groups. You can configure health checks on a per target group basis. Health checks are performed on all targets registered to a target group that is specified in a listener rule for your load balancer.

constructor

new ApplicationTargetGroup(name: string, args: ApplicationTargetGroupArgs, opts: pulumi.ComponentResourceOptions)

method attachTarget

public attachTarget(name: string, args: mod.LoadBalancerTarget, opts: pulumi.CustomResourceOptions): TargetGroupAttachment

Attaches a target to this target group. See Register-Targets for more details.

method containerLoadBalancer

public containerLoadBalancer(): pulumi.Input<x.ecs.ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(): pulumi.Input<aws.ecs.PortMapping>

method createListener

public createListener(name: string, args: ApplicationListenerArgs, opts: pulumi.ComponentResourceOptions): ApplicationListener

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

public static isInstance(obj: any): boolean

method listenerDefaultAction

public listenerDefaultAction(): pulumi.Input<mod.ListenerDefaultActionArgs>

method registerListener

public registerListener(listener: x.lb.Listener): void

Do not call directly. Intended for use by [Listener] and [ListenerRule]

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property listeners

public listeners: x.lb.ApplicationListener[];

property loadBalancer

public loadBalancer: ApplicationLoadBalancer;

property targetGroup

public targetGroup: aws.lb.TargetGroup;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

interface ApplicationTargetGroupArgs

interface ApplicationTargetGroupArgs

property deregistrationDelay

deregistrationDelay?: pulumi.Input<number>;

The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.

property healthCheck

healthCheck?: pulumi.Input<ApplicationTargetGroupHealthCheck>;

A Health Check block.

property loadBalancer

loadBalancer?: ApplicationLoadBalancer;

The load balancer this target group is associated with. If not provided, a new load balancer will be automatically created.

property name

name?: undefined | string;

The name of the TargetGroup. If not specified, the [name] parameter passed into the TargetGroup constructor will be hashed and used as the name. If a [loadBalancer] is not provided, this name will be used to name that resource as well.

property port

port?: pulumi.Input<number>;

The port to use to connect with the target. Valid values are either ports 1-65536. If unspecified will be inferred from the [protocol].

property protocol

protocol?: pulumi.Input<ApplicationProtocol>;

The protocol to use to connect with the target. If unspecified will be inferred from [port].

property proxyProtocolV2

proxyProtocolV2?: pulumi.Input<boolean>;

Boolean to enable / disable support for proxy protocol v2 on Network Load Balancers. See doc for more information.

property slowStart

slowStart?: pulumi.Input<number>;

The amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.

property stickiness

stickiness?: undefined | TargetGroupStickiness | Promise<TargetGroupStickiness> | OutputInstance<TargetGroupStickiness>;

A Stickiness block. Stickiness blocks are documented below. stickiness is only valid if used with Load Balancers of type Application

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property targetType

targetType?: pulumi.Input<mod.TargetType>;

The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address) or lambda (targets are specified by lambda arn). The default is ip. Note that you can’t specify targets for a target group using both instance IDs and IP addresses. If the target type is ip, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can’t specify publicly routable IP addresses.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface ApplicationTargetGroupHealthCheck

interface ApplicationTargetGroupHealthCheck extends TargetGroupHealthCheck

A Health Check block.

The Health Check parameters you can set vary by the protocol of the Target Group. See http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html for a complete reference. Keep in mind, that health checks produce actual requests to the backend. The underlying function is invoked when target_type is set to lambda.

property healthyThreshold

healthyThreshold?: pulumi.Input<number>;

The number of consecutive health checks successes required before considering an unhealthy target healthy. Defaults to 3.

property interval

interval?: pulumi.Input<number>;

The approximate amount of time, in seconds, between health checks of an individual target. Minimum value 5 seconds, Maximum value 300 seconds. For lambda target groups, it needs to be greater as the [timeout] of the underlying [lambda]. Default 30 seconds.

property matcher

matcher?: pulumi.Input<string>;

The HTTP codes to use when checking for a successful response from a target. You can specify multiple values (for example, “200,202”) or a range of values (for example, “200-299”). Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP)

property path

path: pulumi.Input<string>;

(Required for HTTP/HTTPS ALB) The destination for the health check request.

property port

port?: pulumi.Input<string>;

The port to use to connect with the target.

property protocol

protocol?: pulumi.Input<string>;

The protocol to use to connect with the target. Defaults to HTTP. Not applicable when target_type is [lambda].

property timeout

timeout?: pulumi.Input<number>;

The amount of time, in seconds, during which no response means a failed health check. For Application Load Balancers, the range is 2 to 60 seconds and the default is 5 seconds.

property unhealthyThreshold

unhealthyThreshold?: pulumi.Input<number>;

The number of consecutive health check failures required before considering the target unhealthy. Defaults to 3.

function isLoadBalancerTargetInfoProvider

isLoadBalancerTargetInfoProvider(obj: any): boolean

interface ListenerActions

interface ListenerActions

method actions

actions(): ListenerRuleAction | Promise<ListenerRuleAction> | OutputInstance<ListenerRuleAction>[] | Promise<ListenerRuleAction | Promise<ListenerRuleAction> | OutputInstance<ListenerRuleAction>[]> | OutputInstance<ListenerRuleAction | Promise<ListenerRuleAction> | OutputInstance<ListenerRuleAction>[]>

method registerListener

registerListener(listener: Listener): void

interface ListenerArgs

interface ListenerArgs

property certificateArn

certificateArn?: pulumi.Input<string>;

The ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws_lb_listener_certificate resource.

property defaultActions

defaultActions: pulumi.Input<pulumi.Input<ListenerDefaultActionArgs>[]>;

An list of Action blocks. See [ListenerDefaultActionArgs] for more information.

property loadBalancer

loadBalancer: x.lb.LoadBalancer;

property port

port: pulumi.Input<number>;

The port. Specify a value from 1 to 65535.

property protocol

protocol: pulumi.Input<"HTTP" | "HTTPS" | "TCP" | "TLS">;

The protocol.

property sslPolicy

sslPolicy?: pulumi.Input<string>;

The name of the SSL Policy for the listener. Required if protocol is HTTPS.

interface ListenerDefaultAction

interface ListenerDefaultAction

method listenerDefaultAction

listenerDefaultAction(): pulumi.Input<ListenerDefaultActionArgs>

method registerListener

registerListener(listener: Listener): void

interface ListenerDefaultActionArgs

interface ListenerDefaultActionArgs

See https://www.terraform.io/docs/providers/aws/r/lb_listener.html#default_action

property authenticateCognito

authenticateCognito?: pulumi.Input<{
    authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
    onUnauthenticatedRequest: pulumi.Input<string>;
    scope: pulumi.Input<string>;
    sessionCookieName: pulumi.Input<string>;
    sessionTimeout: pulumi.Input<number>;
    userPoolArn: pulumi.Input<string>;
    userPoolClientId: pulumi.Input<string>;
    userPoolDomain: pulumi.Input<string>;
}>;

property authenticateOidc

authenticateOidc?: pulumi.Input<{
    authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
    authorizationEndpoint: pulumi.Input<string>;
    clientId: pulumi.Input<string>;
    clientSecret: pulumi.Input<string>;
    issuer: pulumi.Input<string>;
    onUnauthenticatedRequest: pulumi.Input<string>;
    scope: pulumi.Input<string>;
    sessionCookieName: pulumi.Input<string>;
    sessionTimeout: pulumi.Input<number>;
    tokenEndpoint: pulumi.Input<string>;
    userInfoEndpoint: pulumi.Input<string>;
}>;

property fixedResponse

fixedResponse?: pulumi.Input<{
    contentType: pulumi.Input<string>;
    messageBody: pulumi.Input<string>;
    statusCode: pulumi.Input<string>;
}>;

Information for creating an action that returns a custom HTTP response. Required if type is “fixed-response”.

property order

order?: pulumi.Input<number>;

property redirect

redirect?: pulumi.Input<{
    host: pulumi.Input<string>;
    path: pulumi.Input<string>;
    port: pulumi.Input<string>;
    protocol: pulumi.Input<string>;
    query: pulumi.Input<string>;
    statusCode: pulumi.Input<string>;
}>;

Information for creating a redirect action. Required if type is “redirect”.

property targetGroupArn

targetGroupArn?: pulumi.Input<string>;

The ARN of the Target Group to which to route traffic. Required if type is “forward”.

property type

type: pulumi.Input<string>;

The type of routing action. Valid values are “forward”, “redirect”, “fixed-response”, “authenticate-cognito” and “authenticate-oidc”.

interface ListenerEndpoint

interface ListenerEndpoint

property hostname

hostname: string;

property port

port: number;

interface ListenerRuleArgs

interface ListenerRuleArgs

property actions

actions: ListenerRuleAction | Promise<ListenerRuleAction> | OutputInstance<ListenerRuleAction>[] | Promise<ListenerRuleAction | Promise<ListenerRuleAction> | OutputInstance<ListenerRuleAction>[]> | OutputInstance<ListenerRuleAction | Promise<ListenerRuleAction> | OutputInstance<ListenerRuleAction>[]> | x.lb.ListenerActions;

An Action block. Action blocks are documented below.

property conditions

conditions: ListenerRuleCondition | Promise<ListenerRuleCondition> | OutputInstance<ListenerRuleCondition>[] | Promise<ListenerRuleCondition | Promise<ListenerRuleCondition> | OutputInstance<ListenerRuleCondition>[]> | OutputInstance<ListenerRuleCondition | Promise<ListenerRuleCondition> | OutputInstance<ListenerRuleCondition>[]>;

A Condition block. Condition blocks are documented below.

property priority

priority?: pulumi.Input<number>;

The priority for the rule between 1 and 50000. Leaving it unset will automatically set the rule with next available priority after currently existing highest rule. A listener can’t have multiple rules with the same priority.

interface LoadBalancerArgs

interface LoadBalancerArgs

property enableDeletionProtection

enableDeletionProtection?: pulumi.Input<boolean>;

If true, deletion of the load balancer will be disabled via the AWS API. This will prevent Terraform from deleting the load balancer. Defaults to false.

property external

external?: undefined | false | true;

Whether or not the load balancer is exposed to the internet. Defaults to true if unspecified.

property ipAddressType

ipAddressType?: pulumi.Input<"ipv4" | "dualstack">;

The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack

property loadBalancerType

loadBalancerType: pulumi.Input<"application" | "network">;

The type of load balancer to create. Possible values are application or network.

property securityGroups

securityGroups?: x.ec2.SecurityGroupOrId[];

A list of security group IDs to assign to the LB. Only valid for Load Balancers of type application.

property subnetMappings

subnetMappings?: undefined | LoadBalancerSubnetMapping | Promise<LoadBalancerSubnetMapping> | OutputInstance<LoadBalancerSubnetMapping>[] | Promise<LoadBalancerSubnetMapping | Promise<LoadBalancerSubnetMapping> | OutputInstance<LoadBalancerSubnetMapping>[]> | OutputInstance<LoadBalancerSubnetMapping | Promise<LoadBalancerSubnetMapping> | OutputInstance<LoadBalancerSubnetMapping>[]>;

A subnet mapping block as documented below.

property subnets

subnets?: pulumi.Input<pulumi.Input<string>[]> | LoadBalancerSubnets;

The subnets to use for the load balancer. If not provided, the appropriate external or internal subnets of the [network] will be used.

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface LoadBalancerSubnets

interface LoadBalancerSubnets

method subnets

subnets(): pulumi.Input<pulumi.Input<string>[]>

type LoadBalancerTarget

type LoadBalancerTarget = pulumi.Input<LoadBalancerTargetInfo> | LoadBalancerTargetInfoProvider | aws.ec2.Instance | aws.lambda.EventHandler<x.apigateway.Request, x.apigateway.Response>;

The types of things that can be the target of a load balancer.

Note: A lambda event handler can only be supplied if using an application load balancer.

interface LoadBalancerTargetInfo

interface LoadBalancerTargetInfo

property availabilityZone

availabilityZone?: undefined | string;

The Availability Zone where the IP address of the target is to be registered.

property port

port?: undefined | number;

The port on which targets receive traffic.

property targetId

targetId: string;

The ID of the target. This is the Instance ID for an instance, or the container ID for an ECS container. If the target type is ip, specify an IP address. If the target type is lambda, specify the arn of lambda.

interface LoadBalancerTargetInfoProvider

interface LoadBalancerTargetInfoProvider

method loadBalancerTargetInfo

loadBalancerTargetInfo(targetType: pulumi.Input<mod.TargetType>): pulumi.Output<LoadBalancerTargetInfo>

class NetworkListener

 implements ContainerPortMappingProvider, ContainerLoadBalancerProvider, IntegrationRouteTargetProvider

A listener is a process that checks for connection requests, using the protocol and port that you configure. The rules that you define for a listener determine how the load balancer routes requests to the targets in one or more target groups.

See https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html for more details.

constructor

new NetworkListener(name: string, args: NetworkListenerArgs, opts: pulumi.ComponentResourceOptions)

method addListenerRule

public addListenerRule(name: string, args: x.lb.ListenerRuleArgs, opts?: pulumi.ComponentResourceOptions): ListenerRule

method attachTarget

public attachTarget(name: string, args: mod.LoadBalancerTarget, opts: pulumi.CustomResourceOptions): TargetGroupAttachment

Attaches a target to the defaultTargetGroup for this Listener.

method containerLoadBalancer

public containerLoadBalancer(name: string, parent: pulumi.Resource): ContainerLoadBalancer | Promise<ContainerLoadBalancer> | OutputInstance<ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(name: string, parent: pulumi.Resource): PortMapping | Promise<PortMapping> | OutputInstance<PortMapping>

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. 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

method target

public target(name: string, parent: pulumi.Resource): pulumi.Input<x.apigateway.IntegrationTarget>

property defaultTargetGroup

public defaultTargetGroup?: x.lb.NetworkTargetGroup;

property endpoint

public endpoint: pulumi.Output<ListenerEndpoint>;

property listener

public listener: aws.lb.Listener;

property loadBalancer

public loadBalancer: NetworkLoadBalancer;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

interface NetworkListenerArgs

interface NetworkListenerArgs

property certificateArn

certificateArn?: pulumi.Input<string>;

The ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws_lb_listener_certificate resource.

property defaultAction

defaultAction?: pulumi.Input<mod.ListenerDefaultActionArgs> | x.lb.ListenerDefaultAction;

An Action block. If neither this nor [defaultActions] is provided, a suitable defaultAction will be chosen that forwards to a new [NetworkTargetGroup] created from [port].

Do not provide both [defaultAction] and [defaultActions].

property defaultActions

defaultActions?: pulumi.Input<pulumi.Input<mod.ListenerDefaultActionArgs>[]>;

An list of Action blocks. If neither this nor [defaultAction] is provided, a suitable defaultAction will be chosen that forwards to a new [NetworkTargetGroup] created from [port].

Do not provide both [defaultAction] and [defaultActions].

property loadBalancer

loadBalancer?: NetworkLoadBalancer;

The load balancer this listener is associated with. If not provided, a new load balancer will be automatically created.

property name

name?: undefined | string;

An explicit name to use for dependent resources. Specifically, if a LoadBalancer or TargetGroup is not provided, this name will be used to name those resources.

property port

port: pulumi.Input<number>;

The port. Specify a value from 1 to 65535.

property protocol

protocol?: pulumi.Input<NetworkProtocol>;

The protocol for connections from clients to the load balancer. Valid values are TCP, TLS, HTTP and HTTPS. Defaults to TCP.

property sslPolicy

sslPolicy?: pulumi.Input<string>;

The name of the SSL Policy for the listener. Required if protocol is HTTPS.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

class NetworkLoadBalancer

class NetworkLoadBalancer extends LoadBalancer

constructor

new NetworkLoadBalancer(name: string, args: NetworkLoadBalancerArgs, opts?: pulumi.ComponentResourceOptions)

method attachTarget

public attachTarget(name: string, args: LoadBalancerTarget, opts: pulumi.CustomResourceOptions): TargetGroupAttachment

Attaches a target to the first listener of this LoadBalancer. If there are multiple listeners you can add a target to specific listener to by calling .attachTarget directly on it.

method createListener

public createListener(name: string, args: NetworkListenerArgs, opts: pulumi.ComponentResourceOptions): NetworkListener

method createTargetGroup

public createTargetGroup(name: string, args: NetworkTargetGroupArgs, opts: pulumi.ComponentResourceOptions): NetworkTargetGroup

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. 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

property listeners

public listeners: NetworkListener[];

property loadBalancer

public loadBalancer: aws.lb.LoadBalancer;

property securityGroups

public securityGroups: x.ec2.SecurityGroup[];

property targetGroups

public targetGroups: NetworkTargetGroup[];

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

interface NetworkLoadBalancerArgs

interface NetworkLoadBalancerArgs

property enableCrossZoneLoadBalancing

enableCrossZoneLoadBalancing?: pulumi.Input<boolean>;

If true, cross-zone load balancing of the load balancer will be enabled. 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 Terraform from deleting the load balancer. Defaults to false.

property external

external?: undefined | false | true;

Whether or not the load balancer is exposed to the internet. Defaults to true if unspecified.

property ipAddressType

ipAddressType?: pulumi.Input<"ipv4" | "dualstack">;

The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack

property name

name?: undefined | string;

The name of the LoadBalancer. 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, the [name] parameter passed into the LoadBalancer constructor will be hashed and used as the name.

property subnetMappings

subnetMappings?: undefined | LoadBalancerSubnetMapping | Promise<LoadBalancerSubnetMapping> | OutputInstance<LoadBalancerSubnetMapping>[] | Promise<LoadBalancerSubnetMapping | Promise<LoadBalancerSubnetMapping> | OutputInstance<LoadBalancerSubnetMapping>[]> | OutputInstance<LoadBalancerSubnetMapping | Promise<LoadBalancerSubnetMapping> | OutputInstance<LoadBalancerSubnetMapping>[]>;

A subnet mapping block as documented below.

property subnets

subnets?: pulumi.Input<pulumi.Input<string>[]> | x.lb.LoadBalancerSubnets;

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 tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

type NetworkProtocol

type NetworkProtocol = "TCP" | "TLS" | "HTTP" | "HTTPS";

class NetworkTargetGroup

 implements ContainerPortMappingProvider, ContainerLoadBalancerProvider, ListenerDefaultAction

Each target group is used to route requests to one or more registered targets. When you create each listener rule, you specify a target group and conditions. When a rule condition is met, traffic is forwarded to the corresponding target group. You can create different target groups for different types of requests. For example, create one target group for general requests and other target groups for requests to the microservices for your application.

You define health check settings for your load balancer on a per target group basis. Each target group uses the default health check settings, unless you override them when you create the target group or modify them later on. After you specify a target group in a rule for a listener, the load balancer continually monitors the health of all targets registered with the target group that are in an Availability Zone enabled for the load balancer. The load balancer routes requests to the registered targets that are healthy.

See https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html for more details.

constructor

new NetworkTargetGroup(name: string, args: NetworkTargetGroupArgs, opts: pulumi.ComponentResourceOptions)

method attachTarget

public attachTarget(name: string, args: mod.LoadBalancerTarget, opts: pulumi.CustomResourceOptions): TargetGroupAttachment

Attaches a target to this target group. See Register-Targets for more details.

method containerLoadBalancer

public containerLoadBalancer(): pulumi.Input<x.ecs.ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(): pulumi.Input<aws.ecs.PortMapping>

method createListener

public createListener(name: string, args: NetworkListenerArgs, opts: pulumi.ComponentResourceOptions): NetworkListener

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method listenerDefaultAction

public listenerDefaultAction(): pulumi.Input<mod.ListenerDefaultActionArgs>

method registerListener

public registerListener(listener: x.lb.Listener): void

Do not call directly. Intended for use by [Listener] and [ListenerRule]

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property listeners

public listeners: x.lb.NetworkListener[];

property loadBalancer

public loadBalancer: NetworkLoadBalancer;

property targetGroup

public targetGroup: aws.lb.TargetGroup;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

interface NetworkTargetGroupArgs

interface NetworkTargetGroupArgs

property deregistrationDelay

deregistrationDelay?: pulumi.Input<number>;

The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.

property healthCheck

healthCheck?: pulumi.Input<NetworkTargetGroupHealthCheck>;

A Health Check block. Health Check blocks are documented below.

property loadBalancer

loadBalancer?: NetworkLoadBalancer;

The load balancer this target group is associated with. If not provided, a new load balancer will be automatically created.

property name

name?: undefined | string;

The name of the TargetGroup. If not specified, the [name] parameter passed into the TargetGroup constructor will be hashed and used as the name. If a [loadBalancer] is not provided, this name will be used to name that resource as well.

property port

port: pulumi.Input<number>;

The port to use to connect with the target. Valid values are either ports 1-65536, or traffic-port. Defaults to traffic-port.

property protocol

protocol?: pulumi.Input<NetworkProtocol>;

The protocol for connections from clients to the load balancer. Valid values are TCP, TLS, HTTP and HTTPS. Defaults to TCP.

property proxyProtocolV2

proxyProtocolV2?: pulumi.Input<boolean>;

Boolean to enable / disable support for proxy protocol v2 on Network Load Balancers. See doc for more information.

property slowStart

slowStart?: pulumi.Input<number>;

The amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.

property stickiness

stickiness?: undefined | TargetGroupStickiness | Promise<TargetGroupStickiness> | OutputInstance<TargetGroupStickiness>;

A Stickiness block. Stickiness blocks are documented below. stickiness is only valid if used with Load Balancers of type Application

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property targetType

targetType?: pulumi.Input<"instance" | "ip">;

The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address). The default is ip.

Note that you can’t specify targets for a target group using both instance IDs and IP addresses. If the target type is ip, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can’t specify publicly routable IP addresses.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface NetworkTargetGroupHealthCheck

interface NetworkTargetGroupHealthCheck extends TargetGroupHealthCheck

A Health Check block.

The Health Check parameters you can set vary by the protocol of the Target Group. Many parameters cannot be set to custom values for network load balancers at this time. See http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html for a complete reference. Keep in mind, that health checks produce actual requests to the backend. The underlying function is invoked when target_type is set to lambda.

property healthyThreshold

healthyThreshold?: pulumi.Input<number>;

The number of consecutive health checks successes required before considering an unhealthy target healthy. Defaults to 3.

property interval

interval?: pulumi.Input<number>;

The approximate amount of time, in seconds, between health checks of an individual target. Minimum value 5 seconds, Maximum value 300 seconds. For lambda target groups, it needs to be greater as the [timeout] of the underlying [lambda]. Default 30 seconds.

property matcher

matcher?: undefined;

Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP)

property path

path?: undefined;

Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP).

property port

port?: pulumi.Input<string>;

The port to use to connect with the target.

property protocol

protocol?: pulumi.Input<string>;

The protocol to use to connect with the target. Defaults to HTTP. Not applicable when target_type is [lambda].

property timeout

timeout?: undefined;

For Network Load Balancers, you cannot set a custom value, and the default is 10 seconds for TCP and HTTPS health checks and 6 seconds for HTTP health checks.

property unhealthyThreshold

unhealthyThreshold?: pulumi.Input<number>;

The number of consecutive health check failures required before considering the target unhealthy . For Network Load Balancers, this value must be the same as the healthy_threshold.

interface TargetGroupArgs

interface TargetGroupArgs

property deregistrationDelay

deregistrationDelay?: pulumi.Input<number>;

The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.

property healthCheck

healthCheck?: pulumi.Input<TargetGroupHealthCheck>;

Health check parameters for this target group.

property port

port: pulumi.Input<number>;

The port to use to connect with the target. Valid values are either ports 1-65536, or traffic-port. Defaults to traffic-port.

property protocol

protocol: pulumi.Input<"HTTP" | "HTTPS" | "TCP" | "TLS">;

The protocol to use to connect with the target.

property proxyProtocolV2

proxyProtocolV2?: pulumi.Input<boolean>;

Boolean to enable / disable support for proxy protocol v2 on Network Load Balancers. See doc for more information.

property slowStart

slowStart?: pulumi.Input<number>;

The amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.

property stickiness

stickiness?: undefined | TargetGroupStickiness | Promise<TargetGroupStickiness> | OutputInstance<TargetGroupStickiness>;

A Stickiness block. Stickiness blocks are documented below. stickiness is only valid if used with Load Balancers of type Application

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property targetType

targetType?: pulumi.Input<TargetType>;

The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address) or lambda (targets are specified by lambda arn). The default is ip. Note that you can’t specify targets for a target group using both instance IDs and IP addresses. If the target type is ip, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can’t specify publicly routable IP addresses.

property vpc

vpc: x.ec2.Vpc;

The vpc for this target group.

interface TargetGroupAttachmentArgs

interface TargetGroupAttachmentArgs

property availabilityZone

availabilityZone?: pulumi.Input<string>;

The Availability Zone where the IP address of the target is to be registered.

property func

func?: aws.lambda.Function;

Optional function this target group attachment targets.

property port

port?: pulumi.Input<number>;

The port on which targets receive traffic.

property targetId

targetId: pulumi.Input<string>;

The ID of the target. This is the Instance ID for an instance, or the container ID for an ECS container. If the target type is ip, specify an IP address. If the target type is lambda, specify the arn of lambda.

interface TargetGroupHealthCheck

interface TargetGroupHealthCheck

A Health Check block.

The Health Check parameters you can set vary by the protocol of the Target Group. Many parameters cannot be set to custom values for network load balancers at this time. See http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html for a complete reference. Keep in mind, that health checks produce actual requests to the backend. The underlying function is invoked when target_type is set to lambda.

property healthyThreshold

healthyThreshold?: pulumi.Input<number>;

The number of consecutive health checks successes required before considering an unhealthy target healthy. Defaults to 3.

property interval

interval?: pulumi.Input<number>;

The approximate amount of time, in seconds, between health checks of an individual target. Minimum value 5 seconds, Maximum value 300 seconds. For lambda target groups, it needs to be greater as the [timeout] of the underlying [lambda]. Default 30 seconds.

property matcher

matcher?: pulumi.Input<string>;

The HTTP codes to use when checking for a successful response from a target. You can specify multiple values (for example, “200,202”) or a range of values (for example, “200-299”). Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP)

property path

path?: pulumi.Input<string>;

(Required for HTTP/HTTPS ALB) The destination for the health check request. Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP).

property port

port?: pulumi.Input<string>;

The port to use to connect with the target.

property protocol

protocol?: pulumi.Input<string>;

The protocol to use to connect with the target. Defaults to HTTP. Not applicable when target_type is [lambda].

property timeout

timeout?: pulumi.Input<number>;

The amount of time, in seconds, during which no response means a failed health check. For Application Load Balancers, the range is 2 to 60 seconds and the default is 5 seconds. For Network Load Balancers, you cannot set a custom value, and the default is 10 seconds for TCP and HTTPS health checks and 6 seconds for HTTP health checks.

property unhealthyThreshold

unhealthyThreshold?: pulumi.Input<number>;

The number of consecutive health check failures required before considering the target unhealthy . For Network Load Balancers, this value must be the same as the healthy_threshold. Defaults to 3.

type TargetType

type TargetType = "instance" | "ip" | "lambda";

The type of target that you must specify when registering targets with a target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address) or lambda (targets are specified by lambda arn). The default is ip. Note that you can’t specify targets for a target group using both instance IDs and IP addresses. If the target type is ip, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can’t specify publicly routable IP addresses.

Network Load Balancers do not support the lambda target type, only Application Load Balancers support the lambda target type. For more information, see Lambda-Functions-as-Targets in the User Guide for Application Load Balancers.