class CfnTargetGroup (construct)
Language | Type name |
---|---|
.NET | Amazon.CDK.AWS.ElasticLoadBalancingV2.CfnTargetGroup |
Java | software.amazon.awscdk.services.elasticloadbalancingv2.CfnTargetGroup |
Python | aws_cdk.aws_elasticloadbalancingv2.CfnTargetGroup |
TypeScript | @aws-cdk/aws-elasticloadbalancingv2 » CfnTargetGroup |
Implements
IConstruct
, IConstruct
, IDependable
, IInspectable
A CloudFormation AWS::ElasticLoadBalancingV2::TargetGroup
.
Specifies a target group for an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer.
Before you register a Lambda function as a target, you must create a AWS::Lambda::Permission
resource that grants the Elastic Load Balancing service principal permission to invoke the Lambda function.
Example
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as elbv2 from '@aws-cdk/aws-elasticloadbalancingv2';
const cfnTargetGroup = new elbv2.CfnTargetGroup(this, 'MyCfnTargetGroup', /* all optional props */ {
healthCheckEnabled: false,
healthCheckIntervalSeconds: 123,
healthCheckPath: 'healthCheckPath',
healthCheckPort: 'healthCheckPort',
healthCheckProtocol: 'healthCheckProtocol',
healthCheckTimeoutSeconds: 123,
healthyThresholdCount: 123,
ipAddressType: 'ipAddressType',
matcher: {
grpcCode: 'grpcCode',
httpCode: 'httpCode',
},
name: 'name',
port: 123,
protocol: 'protocol',
protocolVersion: 'protocolVersion',
tags: [{
key: 'key',
value: 'value',
}],
targetGroupAttributes: [{
key: 'key',
value: 'value',
}],
targets: [{
id: 'id',
// the properties below are optional
availabilityZone: 'availabilityZone',
port: 123,
}],
targetType: 'targetType',
unhealthyThresholdCount: 123,
vpcId: 'vpcId',
});
Initializer
new CfnTargetGroup(scope: Construct, id: string, props?: CfnTargetGroupProps)
Parameters
- scope
Construct
— - scope in which this resource is defined. - id
string
— - scoped id of the resource. - props
Cfn
— - resource properties.Target Group Props
Create a new AWS::ElasticLoadBalancingV2::TargetGroup
.
Construct Props
Name | Type | Description |
---|---|---|
health | boolean | IResolvable | Indicates whether health checks are enabled. |
health | number | The approximate amount of time, in seconds, between health checks of an individual target. |
health | string | [HTTP/HTTPS health checks] The destination for health checks on the targets. |
health | string | The port the load balancer uses when performing health checks on targets. |
health | string | The protocol the load balancer uses when performing health checks on targets. |
health | number | The amount of time, in seconds, during which no response from a target means a failed health check. |
healthy | number | The number of consecutive health check successes required before considering a target healthy. |
ip | string | The type of IP address used for this target group. |
matcher? | IResolvable | Matcher | [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target. |
name? | string | The name of the target group. |
port? | number | The port on which the targets receive traffic. |
protocol? | string | The protocol to use for routing traffic to the targets. |
protocol | string | [HTTP/HTTPS protocol] The protocol version. |
tags? | Cfn [] | The tags. |
target | IResolvable | IResolvable | Target [] | The attributes. |
target | string | The type of target that you must specify when registering targets with this target group. |
targets? | IResolvable | IResolvable | Target [] | The targets. |
unhealthy | number | The number of consecutive health check failures required before considering a target unhealthy. |
vpc | string | The identifier of the virtual private cloud (VPC). |
healthCheckEnabled?
Type:
boolean |
IResolvable
(optional)
Indicates whether health checks are enabled.
If the target type is lambda
, health checks are disabled by default but can be enabled. If the target type is instance
, ip
, or alb
, health checks are always enabled and cannot be disabled.
healthCheckIntervalSeconds?
Type:
number
(optional)
The approximate amount of time, in seconds, between health checks of an individual target.
The range is 5-300. If the target group protocol is TCP, TLS, UDP, TCP_UDP, HTTP or HTTPS, the default is 30 seconds. If the target group protocol is GENEVE, the default is 10 seconds. If the target type is lambda
, the default is 35 seconds.
healthCheckPath?
Type:
string
(optional)
[HTTP/HTTPS health checks] The destination for health checks on the targets.
[HTTP1 or HTTP2 protocol version] The ping path. The default is /.
[GRPC protocol version] The path of a custom health check method with the format /package.service/method. The default is / AWS .ALB/healthcheck.
healthCheckPort?
Type:
string
(optional)
The port the load balancer uses when performing health checks on targets.
If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is traffic-port
, which is the port on which each target receives traffic from the load balancer. If the protocol is GENEVE, the default is port 80.
healthCheckProtocol?
Type:
string
(optional)
The protocol the load balancer uses when performing health checks on targets.
For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks.
healthCheckTimeoutSeconds?
Type:
number
(optional)
The amount of time, in seconds, during which no response from a target means a failed health check.
The range is 2–120 seconds. For target groups with a protocol of HTTP, the default is 6 seconds. For target groups with a protocol of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol of GENEVE, the default is 5 seconds. If the target type is lambda
, the default is 30 seconds.
healthyThresholdCount?
Type:
number
(optional)
The number of consecutive health check successes required before considering a target healthy.
The range is 2-10. If the target group protocol is TCP, TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with a protocol of GENEVE, the default is 5. If the target type is lambda
, the default is 5.
ipAddressType?
Type:
string
(optional)
The type of IP address used for this target group.
The possible values are ipv4
and ipv6
. This is an optional parameter. If not specified, the IP address type defaults to ipv4
.
matcher?
Type:
IResolvable
|
Matcher
(optional)
[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target.
For target groups with a protocol of TCP, TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of HTTP or HTTPS, the range is 200-499. For target groups with a protocol of GENEVE, the range is 200-399.
name?
Type:
string
(optional)
The name of the target group.
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.
port?
Type:
number
(optional)
The port on which the targets receive traffic.
This port is used unless you specify a port override when registering the target. If the target is a Lambda function, this parameter does not apply. If the protocol is GENEVE, the supported port is 6081.
protocol?
Type:
string
(optional)
The protocol to use for routing traffic to the targets.
For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, or TCP_UDP. For Gateway Load Balancers, the supported protocol is GENEVE. A TCP_UDP listener must be associated with a TCP_UDP target group. If the target is a Lambda function, this parameter does not apply.
protocolVersion?
Type:
string
(optional)
[HTTP/HTTPS protocol] The protocol version.
The possible values are GRPC
, HTTP1
, and HTTP2
.
tags?
Type:
Cfn
[]
(optional)
The tags.
targetGroupAttributes?
Type:
IResolvable
|
IResolvable
|
Target
[]
(optional)
The attributes.
targetType?
Type:
string
(optional)
The type of target that you must specify when registering targets with this target group.
You can't specify targets for a target group using more than one target type.
instance
- Register targets by instance ID. This is the default value.ip
- Register targets by IP address. You can 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.lambda
- Register a single Lambda function as a target.alb
- Register a single Application Load Balancer as a target.
targets?
Type:
IResolvable
|
IResolvable
|
Target
[]
(optional)
The targets.
unhealthyThresholdCount?
Type:
number
(optional)
The number of consecutive health check failures required before considering a target unhealthy.
The range is 2-10. If the target group protocol is TCP, TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 2. For target groups with a protocol of GENEVE, the default is 2. If the target type is lambda
, the default is 5.
vpcId?
Type:
string
(optional)
The identifier of the virtual private cloud (VPC).
If the target is a Lambda function, this parameter does not apply. Otherwise, this parameter is required.
Properties
Name | Type | Description |
---|---|---|
attr | string[] | The Amazon Resource Name (ARN) of the load balancer that routes traffic to this target group. |
attr | string | The Amazon Resource Name (ARN) of the target group. |
attr | string | The full name of the target group. |
attr | string | The name of the target group. |
cfn | ICfn | Options for this resource, such as condition, update policy etc. |
cfn | { [string]: any } | |
cfn | string | AWS resource type. |
creation | string[] | |
logical | string | The logical ID for this CloudFormation stack element. |
node | Construct | The construct tree node associated with this construct. |
ref | string | Return a string that will be resolved to a CloudFormation { Ref } for this element. |
stack | Stack | The stack in which this element is defined. |
tags | Tag | The tags. |
health | boolean | IResolvable | Indicates whether health checks are enabled. |
health | number | The approximate amount of time, in seconds, between health checks of an individual target. |
health | string | [HTTP/HTTPS health checks] The destination for health checks on the targets. |
health | string | The port the load balancer uses when performing health checks on targets. |
health | string | The protocol the load balancer uses when performing health checks on targets. |
health | number | The amount of time, in seconds, during which no response from a target means a failed health check. |
healthy | number | The number of consecutive health check successes required before considering a target healthy. |
ip | string | The type of IP address used for this target group. |
matcher? | IResolvable | Matcher | [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target. |
name? | string | The name of the target group. |
port? | number | The port on which the targets receive traffic. |
protocol? | string | The protocol to use for routing traffic to the targets. |
protocol | string | [HTTP/HTTPS protocol] The protocol version. |
target | IResolvable | IResolvable | Target [] | The attributes. |
target | string | The type of target that you must specify when registering targets with this target group. |
targets? | IResolvable | IResolvable | Target [] | The targets. |
unhealthy | number | The number of consecutive health check failures required before considering a target unhealthy. |
vpc | string | The identifier of the virtual private cloud (VPC). |
static CFN_RESOURCE_TYPE_NAME | string | The CloudFormation resource type name for this resource class. |
attrLoadBalancerArns
Type:
string[]
The Amazon Resource Name (ARN) of the load balancer that routes traffic to this target group.
attrTargetGroupArn
Type:
string
The Amazon Resource Name (ARN) of the target group.
attrTargetGroupFullName
Type:
string
The full name of the target group.
For example, targetgroup/my-target-group/cbf133c568e0d028
.
attrTargetGroupName
Type:
string
The name of the target group.
For example, my-target-group
.
cfnOptions
Type:
ICfn
Options for this resource, such as condition, update policy etc.
cfnProperties
Type:
{ [string]: any }
cfnResourceType
Type:
string
AWS resource type.
creationStack
Type:
string[]
logicalId
Type:
string
The logical ID for this CloudFormation stack element.
The logical ID of the element is calculated from the path of the resource node in the construct tree.
To override this value, use overrideLogicalId(newLogicalId)
.
node
Type:
Construct
The construct tree node associated with this construct.
ref
Type:
string
Return a string that will be resolved to a CloudFormation { Ref }
for this element.
If, by any chance, the intrinsic reference of a resource is not a string, you could
coerce it to an IResolvable through Lazy.any({ produce: resource.ref })
.
stack
Type:
Stack
The stack in which this element is defined.
CfnElements must be defined within a stack scope (directly or indirectly).
tags
Type:
Tag
The tags.
healthCheckEnabled?
Type:
boolean |
IResolvable
(optional)
Indicates whether health checks are enabled.
If the target type is lambda
, health checks are disabled by default but can be enabled. If the target type is instance
, ip
, or alb
, health checks are always enabled and cannot be disabled.
healthCheckIntervalSeconds?
Type:
number
(optional)
The approximate amount of time, in seconds, between health checks of an individual target.
The range is 5-300. If the target group protocol is TCP, TLS, UDP, TCP_UDP, HTTP or HTTPS, the default is 30 seconds. If the target group protocol is GENEVE, the default is 10 seconds. If the target type is lambda
, the default is 35 seconds.
healthCheckPath?
Type:
string
(optional)
[HTTP/HTTPS health checks] The destination for health checks on the targets.
[HTTP1 or HTTP2 protocol version] The ping path. The default is /.
[GRPC protocol version] The path of a custom health check method with the format /package.service/method. The default is / AWS .ALB/healthcheck.
healthCheckPort?
Type:
string
(optional)
The port the load balancer uses when performing health checks on targets.
If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is traffic-port
, which is the port on which each target receives traffic from the load balancer. If the protocol is GENEVE, the default is port 80.
healthCheckProtocol?
Type:
string
(optional)
The protocol the load balancer uses when performing health checks on targets.
For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks.
healthCheckTimeoutSeconds?
Type:
number
(optional)
The amount of time, in seconds, during which no response from a target means a failed health check.
The range is 2–120 seconds. For target groups with a protocol of HTTP, the default is 6 seconds. For target groups with a protocol of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol of GENEVE, the default is 5 seconds. If the target type is lambda
, the default is 30 seconds.
healthyThresholdCount?
Type:
number
(optional)
The number of consecutive health check successes required before considering a target healthy.
The range is 2-10. If the target group protocol is TCP, TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with a protocol of GENEVE, the default is 5. If the target type is lambda
, the default is 5.
ipAddressType?
Type:
string
(optional)
The type of IP address used for this target group.
The possible values are ipv4
and ipv6
. This is an optional parameter. If not specified, the IP address type defaults to ipv4
.
matcher?
Type:
IResolvable
|
Matcher
(optional)
[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target.
For target groups with a protocol of TCP, TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of HTTP or HTTPS, the range is 200-499. For target groups with a protocol of GENEVE, the range is 200-399.
name?
Type:
string
(optional)
The name of the target group.
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.
port?
Type:
number
(optional)
The port on which the targets receive traffic.
This port is used unless you specify a port override when registering the target. If the target is a Lambda function, this parameter does not apply. If the protocol is GENEVE, the supported port is 6081.
protocol?
Type:
string
(optional)
The protocol to use for routing traffic to the targets.
For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, or TCP_UDP. For Gateway Load Balancers, the supported protocol is GENEVE. A TCP_UDP listener must be associated with a TCP_UDP target group. If the target is a Lambda function, this parameter does not apply.
protocolVersion?
Type:
string
(optional)
[HTTP/HTTPS protocol] The protocol version.
The possible values are GRPC
, HTTP1
, and HTTP2
.
targetGroupAttributes?
Type:
IResolvable
|
IResolvable
|
Target
[]
(optional)
The attributes.
targetType?
Type:
string
(optional)
The type of target that you must specify when registering targets with this target group.
You can't specify targets for a target group using more than one target type.
instance
- Register targets by instance ID. This is the default value.ip
- Register targets by IP address. You can 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.lambda
- Register a single Lambda function as a target.alb
- Register a single Application Load Balancer as a target.
targets?
Type:
IResolvable
|
IResolvable
|
Target
[]
(optional)
The targets.
unhealthyThresholdCount?
Type:
number
(optional)
The number of consecutive health check failures required before considering a target unhealthy.
The range is 2-10. If the target group protocol is TCP, TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 2. For target groups with a protocol of GENEVE, the default is 2. If the target type is lambda
, the default is 5.
vpcId?
Type:
string
(optional)
The identifier of the virtual private cloud (VPC).
If the target is a Lambda function, this parameter does not apply. Otherwise, this parameter is required.
static CFN_RESOURCE_TYPE_NAME
Type:
string
The CloudFormation resource type name for this resource class.
Methods
Name | Description |
---|---|
add | Syntactic sugar for addOverride(path, undefined) . |
add | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
add | Add a value to the CloudFormation Resource Metadata. |
add | Adds an override to the synthesized CloudFormation resource. |
add | Adds an override that deletes the value of a property from the resource definition. |
add | Adds an override to a resource property. |
apply | Sets the deletion policy of the resource based on the removal policy specified. |
get | Returns a token for an runtime attribute of this resource. |
get | Retrieve a value value from the CloudFormation Resource Metadata. |
inspect(inspector) | Examines the CloudFormation resource and discloses attributes. |
override | Overrides the auto-generated logical ID with a specific ID. |
to | Returns a string representation of this construct. |
protected render |
addDeletionOverride(path)
public addDeletionOverride(path: string): void
Parameters
- path
string
— The path of the value to delete.
Syntactic sugar for addOverride(path, undefined)
.
addDependsOn(target)
public addDependsOn(target: CfnResource): void
Parameters
- target
Cfn
Resource
Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
This can be used for resources across stacks (or nested stack) boundaries and the dependency will automatically be transferred to the relevant scope.
addMetadata(key, value)
public addMetadata(key: string, value: any): void
Parameters
- key
string
- value
any
Add a value to the CloudFormation Resource Metadata.
See also: [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this metadata ends up in the stack template under the resource, whereas CDK node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this metadata ends up in the stack template under the resource, whereas CDK node metadata ends up in the Cloud Assembly.)
addOverride(path, value)
public addOverride(path: string, value: any): void
Parameters
- path
string
— - The path of the property, you can use dot notation to override values in complex types. - value
any
— - The value.
Adds an override to the synthesized CloudFormation resource.
To add a
property override, either use addPropertyOverride
or prefix path
with
"Properties." (i.e. Properties.TopicName
).
If the override is nested, separate each nested level using a dot (.) in the path parameter. If there is an array as part of the nesting, specify the index in the path.
To include a literal .
in the property name, prefix with a \
. In most
programming languages you will need to write this as "\\."
because the
\
itself will need to be escaped.
For example,
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
would add the overrides
"Properties": {
"GlobalSecondaryIndexes": [
{
"Projection": {
"NonKeyAttributes": [ "myattribute" ]
...
}
...
},
{
"ProjectionType": "INCLUDE"
...
},
]
...
}
The value
argument to addOverride
will not be processed or translated
in any way. Pass raw JSON values in here with the correct capitalization
for CloudFormation. If you pass CDK classes or structs, they will be
rendered with lowercased key names, and CloudFormation will reject the
template.
addPropertyDeletionOverride(propertyPath)
public addPropertyDeletionOverride(propertyPath: string): void
Parameters
- propertyPath
string
— The path to the property.
Adds an override that deletes the value of a property from the resource definition.
addPropertyOverride(propertyPath, value)
public addPropertyOverride(propertyPath: string, value: any): void
Parameters
- propertyPath
string
— The path of the property. - value
any
— The value.
Adds an override to a resource property.
Syntactic sugar for addOverride("Properties.<...>", value)
.
applyRemovalPolicy(policy?, options?)
public applyRemovalPolicy(policy?: RemovalPolicy, options?: RemovalPolicyOptions): void
Parameters
- policy
Removal
Policy - options
Removal
Policy Options
Sets the deletion policy of the resource based on the removal policy specified.
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (RemovalPolicy.DESTROY
), or left in your AWS
account for data recovery and cleanup later (RemovalPolicy.RETAIN
).
getAtt(attributeName)
public getAtt(attributeName: string): Reference
Parameters
- attributeName
string
— The name of the attribute.
Returns
Returns a token for an runtime attribute of this resource.
Ideally, use generated attribute accessors (e.g. resource.arn
), but this can be used for future compatibility
in case there is no generated attribute.
getMetadata(key)
public getMetadata(key: string): any
Parameters
- key
string
Returns
any
Retrieve a value value from the CloudFormation Resource Metadata.
See also: [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this metadata ends up in the stack template under the resource, whereas CDK node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this metadata ends up in the stack template under the resource, whereas CDK node metadata ends up in the Cloud Assembly.)
inspect(inspector)
public inspect(inspector: TreeInspector): void
Parameters
- inspector
Tree
— - tree inspector to collect and process attributes.Inspector
Examines the CloudFormation resource and discloses attributes.
overrideLogicalId(newLogicalId)
public overrideLogicalId(newLogicalId: string): void
Parameters
- newLogicalId
string
— The new logical ID to use for this stack element.
Overrides the auto-generated logical ID with a specific ID.
toString()
public toString(): string
Returns
string
Returns a string representation of this construct.
protected renderProperties(props)
protected renderProperties(props: { [string]: any }): { [string]: any }
Parameters
- props
{ [string]: any }
Returns
{ [string]: any }