Package com.pulumi.aws.alb
Class TargetGroup
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.alb.TargetGroup
-
public class TargetGroup extends com.pulumi.resources.CustomResourceProvides a Target Group resource for use with Load Balancer resources. > **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical. ## Example Usage ### Instance Target Group
### IP Target Grouppackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.ec2.Vpc; import com.pulumi.aws.ec2.VpcArgs; import com.pulumi.aws.lb.TargetGroup; import com.pulumi.aws.lb.TargetGroupArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var main = new Vpc("main", VpcArgs.builder() .cidrBlock("10.0.0.0/16") .build()); var test = new TargetGroup("test", TargetGroupArgs.builder() .name("tf-example-lb-tg") .port(80) .protocol("HTTP") .vpcId(main.id()) .build()); } }
### Lambda Target Grouppackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.ec2.Vpc; import com.pulumi.aws.ec2.VpcArgs; import com.pulumi.aws.lb.TargetGroup; import com.pulumi.aws.lb.TargetGroupArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var main = new Vpc("main", VpcArgs.builder() .cidrBlock("10.0.0.0/16") .build()); var ip_example = new TargetGroup("ip-example", TargetGroupArgs.builder() .name("tf-example-lb-tg") .port(80) .protocol("HTTP") .targetType("ip") .vpcId(main.id()) .build()); } }
### ALB Target Grouppackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lb.TargetGroup; import com.pulumi.aws.lb.TargetGroupArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var lambda_example = new TargetGroup("lambda-example", TargetGroupArgs.builder() .name("tf-example-lb-tg") .targetType("lambda") .build()); } }
### Target group with unhealthy connection termination disabledpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lb.TargetGroup; import com.pulumi.aws.lb.TargetGroupArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var alb_example = new TargetGroup("alb-example", TargetGroupArgs.builder() .name("tf-example-lb-alb-tg") .targetType("alb") .port(80) .protocol("TCP") .vpcId(main.id()) .build()); } }
### Target group with health requirementspackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lb.TargetGroup; import com.pulumi.aws.lb.TargetGroupArgs; import com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder() .targetHealthStates(TargetGroupTargetHealthStateArgs.builder() .enableUnhealthyConnectionTermination(false) .build()) .name("tf-example-lb-nlb-tg") .port(25) .protocol("TCP") .vpcId(main.id()) .build()); } }
## Import ### Identity Schema #### Required - `arn` (String) ARN of the target group. Using `pulumi import`, import Target Groups using their ARN. For example: ```sh $ pulumi import aws:alb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314 ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lb.TargetGroup; import com.pulumi.aws.lb.TargetGroupArgs; import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs; import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs; import com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder() .targetGroupHealth(TargetGroupTargetGroupHealthArgs.builder() .dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs.builder() .minimumHealthyTargetsCount("1") .minimumHealthyTargetsPercentage("off") .build()) .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder() .minimumHealthyTargetsCount(1) .minimumHealthyTargetsPercentage("off") .build()) .build()) .name("tf-example-lb-nlb-tg") .port(80) .protocol("TCP") .vpcId(main.id()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description TargetGroup(java.lang.String name)TargetGroup(java.lang.String name, TargetGroupArgs args)TargetGroup(java.lang.String name, TargetGroupArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.lang.String>arnSuffix()com.pulumi.core.Output<java.lang.Boolean>connectionTermination()com.pulumi.core.Output<java.util.Optional<java.lang.Integer>>deregistrationDelay()static TargetGroupget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, TargetGroupState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<TargetGroupHealthCheck>healthCheck()com.pulumi.core.Output<java.lang.String>ipAddressType()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>lambdaMultiValueHeadersEnabled()com.pulumi.core.Output<java.util.List<java.lang.String>>loadBalancerArns()com.pulumi.core.Output<java.lang.String>loadBalancingAlgorithmType()com.pulumi.core.Output<java.lang.String>loadBalancingAnomalyMitigation()com.pulumi.core.Output<java.lang.String>loadBalancingCrossZoneEnabled()com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.lang.String>namePrefix()com.pulumi.core.Output<java.util.Optional<java.lang.Integer>>port()com.pulumi.core.Output<java.lang.String>preserveClientIp()com.pulumi.core.Output<java.util.Optional<java.lang.String>>protocol()com.pulumi.core.Output<java.lang.String>protocolVersion()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>proxyProtocolV2()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<java.lang.Integer>>slowStart()com.pulumi.core.Output<TargetGroupStickiness>stickiness()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()com.pulumi.core.Output<java.util.Optional<java.lang.Integer>>targetControlPort()com.pulumi.core.Output<java.util.List<TargetGroupTargetFailover>>targetFailovers()com.pulumi.core.Output<TargetGroupTargetGroupHealth>targetGroupHealth()com.pulumi.core.Output<java.util.List<TargetGroupTargetHealthState>>targetHealthStates()com.pulumi.core.Output<java.util.Optional<java.lang.String>>targetType()com.pulumi.core.Output<java.util.Optional<java.lang.String>>vpcId()
-
-
-
Constructor Detail
-
TargetGroup
public TargetGroup(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
TargetGroup
public TargetGroup(java.lang.String name, @Nullable TargetGroupArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
TargetGroup
public TargetGroup(java.lang.String name, @Nullable TargetGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the Target Group (matches `id`).
-
arnSuffix
public com.pulumi.core.Output<java.lang.String> arnSuffix()
- Returns:
- ARN suffix for use with CloudWatch Metrics.
-
connectionTermination
public com.pulumi.core.Output<java.lang.Boolean> connectionTermination()
- Returns:
- Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#deregistration-delay) for more information. Default is `false`.
-
deregistrationDelay
public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> deregistrationDelay()
- Returns:
- 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.
-
healthCheck
public com.pulumi.core.Output<TargetGroupHealthCheck> healthCheck()
- Returns:
- Health Check configuration block. Detailed below.
-
ipAddressType
public com.pulumi.core.Output<java.lang.String> ipAddressType()
- Returns:
- The type of IP addresses used by the target group, only supported when target type is set to `ip`. Possible values are `ipv4` or `ipv6`.
-
lambdaMultiValueHeadersEnabled
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> lambdaMultiValueHeadersEnabled()
- Returns:
- Whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. Only applies when `targetType` is `lambda`. Default is `false`.
-
loadBalancerArns
public com.pulumi.core.Output<java.util.List<java.lang.String>> loadBalancerArns()
- Returns:
- ARNs of the Load Balancers associated with the Target Group.
-
loadBalancingAlgorithmType
public com.pulumi.core.Output<java.lang.String> loadBalancingAlgorithmType()
- Returns:
- Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is `roundRobin`, `leastOutstandingRequests`, or `weightedRandom`. The default is `roundRobin`.
-
loadBalancingAnomalyMitigation
public com.pulumi.core.Output<java.lang.String> loadBalancingAnomalyMitigation()
- Returns:
- Determines whether to enable target anomaly mitigation. Target anomaly mitigation is only supported by the `weightedRandom` load balancing algorithm type. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#automatic-target-weights) for more information. The value is `"on"` or `"off"`. The default is `"off"`.
-
loadBalancingCrossZoneEnabled
public com.pulumi.core.Output<java.lang.String> loadBalancingCrossZoneEnabled()
- Returns:
- Indicates whether cross zone load balancing is enabled. The value is `"true"`, `"false"` or `"useLoadBalancerConfiguration"`. The default is `"useLoadBalancerConfiguration"`.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name of the target group. If omitted, this provider will assign a random, unique name. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen.
-
namePrefix
public com.pulumi.core.Output<java.lang.String> namePrefix()
- Returns:
- Creates a unique name beginning with the specified prefix. Conflicts with `name`. Cannot be longer than 6 characters.
-
port
public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> port()
- Returns:
- Port on which targets receive traffic, unless overridden when registering a specific target. Required when `targetType` is `instance`, `ip` or `alb`. Does not apply when `targetType` is `lambda`.
-
preserveClientIp
public com.pulumi.core.Output<java.lang.String> preserveClientIp()
- Returns:
- Whether client IP preservation is enabled. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#client-ip-preservation) for more information.
-
protocol
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> protocol()
- Returns:
- Protocol to use for routing traffic to the targets. Should be one of `GENEVE`, `HTTP`, `HTTPS`, `TCP`, `TCP_UDP`, `TLS`, `UDP`, `QUIC`, or `TCP_QUIC`. Required when `targetType` is `instance`, `ip`, or `alb`. Does not apply when `targetType` is `lambda`.
-
protocolVersion
public com.pulumi.core.Output<java.lang.String> protocolVersion()
- Returns:
- Only applicable when `protocol` is `HTTP` or `HTTPS`. The protocol version. Specify `GRPC` to send requests to targets using gRPC. Specify `HTTP2` to send requests to targets using HTTP/2. The default is `HTTP1`, which sends requests to targets using HTTP/1.1
-
proxyProtocolV2
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> proxyProtocolV2()
- Returns:
- Whether to enable support for proxy protocol v2 on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol) for more information. Default is `false`.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
slowStart
public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> slowStart()
- Returns:
- 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.
-
stickiness
public com.pulumi.core.Output<TargetGroupStickiness> stickiness()
- Returns:
- Stickiness configuration block. Detailed below.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
targetControlPort
public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> targetControlPort()
- Returns:
- Port on which the target control agent and application load balancer exchange management traffic for the target optimizer feature. Only applicable for Application Load Balancer target groups when `targetType` is `instance` or `ip`.
-
targetFailovers
public com.pulumi.core.Output<java.util.List<TargetGroupTargetFailover>> targetFailovers()
- Returns:
- Target failover block. Only applicable for Gateway Load Balancer target groups. See targetFailover for more information.
-
targetGroupHealth
public com.pulumi.core.Output<TargetGroupTargetGroupHealth> targetGroupHealth()
- Returns:
- Target health requirements block. See targetGroupHealth for more information.
-
targetHealthStates
public com.pulumi.core.Output<java.util.List<TargetGroupTargetHealthState>> targetHealthStates()
- Returns:
- Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See targetHealthState for more information.
-
targetType
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> targetType()
- Returns:
- Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. 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 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. Application Load Balancers do not support the `alb` target type.
-
vpcId
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> vpcId()
- Returns:
- Identifier of the VPC in which to create the target group. Required when `targetType` is `instance`, `ip` or `alb`. Does not apply when `targetType` is `lambda`.
-
get
public static TargetGroup get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable TargetGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-