AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS::ElasticLoadBalancingV2::TargetGroup

AWS::ElasticLoadBalancingV2::TargetGroup 资源创建一个 Elastic Load Balancing 目标组,该目标组将请求路由到一个或多个注册的目标,例如 EC2 实例。有关更多信息,请参阅 Elastic Load Balancing 用户指南中的入门

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::ElasticLoadBalancingV2::TargetGroup", "Properties" : { "HealthCheckIntervalSeconds" : Integer, "HealthCheckPath" : String, "HealthCheckPort" : String, "HealthCheckProtocol" : String, "HealthCheckTimeoutSeconds" : Integer, "HealthyThresholdCount" : Integer, "Matcher" : Matcher, "Name" : String, "Port" : Integer, "Protocol" : String, "Tags" : [ Resource Tag, ... ], "TargetGroupAttributes" : [ TargetGroupAttributes, ... ], "Targets" : [ TargetDescription, ... ], "TargetType" : String, "UnhealthyThresholdCount" : Integer, "VpcId" : String } }

YAML

Type: "AWS::ElasticLoadBalancingV2::TargetGroup" Properties: HealthCheckIntervalSeconds: Integer HealthCheckPath: String HealthCheckPort: String HealthCheckProtocol: String HealthCheckTimeoutSeconds: Integer HealthyThresholdCount: Integer Matcher: Matcher Name: String Port: Integer Protocol: String Tags: - Resource Tag TargetGroupAttributes: - TargetGroupAttributes Targets: - TargetDescription TargetType: String UnhealthyThresholdCount: Integer VpcId: String

属性

HealthCheckIntervalSeconds

各个目标的运行状况检查之间的大约时间长度 (秒)。

Required: No

Type: Integer

更新要求无需中断

HealthCheckPath

Elastic Load Balancing 将运行状况检查请求发送到的 Ping 路径目标。

Required: No

Type: String

更新要求无需中断

HealthCheckPort

对目标执行运行状况检查时负载均衡器使用的端口。

有关有效值和默认值的信息,请参阅 Elastic Load Balancing API 参考版本 2015-12-01 中的 CreateTargetGroup 操作的 HealthCheckPort 参数。

Required: No

Type: String

更新要求无需中断

HealthCheckProtocol

对目标执行运行状况检查时负载均衡器使用的协议,例如 HTTPHTTPS

有关有效值和默认值的信息,请参阅 Elastic Load Balancing API 参考版本 2015-12-01 中的 CreateTargetGroup 操作的 HealthCheckProtocol 参数。

Required: No

Type: String

更新要求无需中断

HealthCheckTimeoutSeconds

在将运行状况检查视为失败之前等待响应的秒数。

Required: No

Type: Integer

更新要求无需中断

HealthyThresholdCount

将不正常目标视为正常之前所需的连续运行状况检查成功次数。

Required: No

Type: Integer

更新要求无需中断

Matcher

健康目标在对运行状况检查进行响应时使用的 HTTP 代码。

Required: No

Type: Elastic Load Balancing TargetGroup Matcher

更新要求无需中断

Name

目标组的名称。

重要

对于每个区域、每个账户来说,该名称必须是唯一的。

目标组名称应少于 22 个字符,因为 AWS CloudFormation 使用目标组名称来创建负载均衡器名称。

Required: No

Type: String

更新要求替换

Port

目标接收流量所用的端口。

Required: Yes

Type: Integer

更新要求替换

Protocol

将流量路由到目标时所用的协议。

Required: Yes

Type: String

更新要求替换

Tags

目标组的任意标签组(键/值对)。使用标签来帮助管理资源。

Required: No

Type: AWS CloudFormation 资源标签

更新要求无需中断.

TargetGroupAttributes

目标组配置。

Required: No

Type: Elastic Load Balancing TargetGroup TargetGroupAttributes 列表

更新要求无需中断

Targets

要添加到此目标组的目标。

Required: No

Type: Elastic Load Balancing TargetGroup TargetDescription 列表

更新要求无需中断

TargetType

此目标组中目标的注册类型。有效值为 instanceip。默认为 instance

必需:否

类型:字符串

更新要求替换

UnhealthyThresholdCount

将目标视为不正常之前所需的连续运行状况检查失败次数。

Required: No

Type: Integer

更新要求无需中断

VpcId

您的目标所在的 VPC 的 ID。

Required: Yes

Type: String

更新要求替换

返回值

Ref

当向 Ref 内部函数提供此资源的逻辑 ID 时,Ref 将返回目标组的 Amazon 资源名称 (ARN),如 arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067

有关使用 Ref 功能的更多信息,请参阅参考

Fn::GetAtt

Fn::GetAtt 返回一个此类型指定属性的值。以下为可用属性和示例返回值。

LoadBalancerArns

将流量路由至此目标组的负载均衡器的 Amazon 资源名称 (ARN) 的列表,如 [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188" ]

TargetGroupFullName

目标组的全名,例如 targetgroup/my-target-group/cbf133c568e0d028

有关使用 Fn::GetAtt 的更多信息,请参见 Fn::GetAtt

示例

创建将 EC2 实例作为目标的目标组

下面的示例创建包含 Instance1Instance2 EC2 实例作为目标的目标组。实例必须使用 200 状态代码响应才能通过运行状况检查请求。

JSON

"TargetGroup" : { "Type" : "AWS::ElasticLoadBalancingV2::TargetGroup", "Properties" : { "HealthCheckIntervalSeconds": 30, "HealthCheckProtocol": "HTTPS", "HealthCheckTimeoutSeconds": 10, "HealthyThresholdCount": 4, "Matcher" : { "HttpCode" : "200" }, "Name": "MyTargets", "Port": 10, "Protocol": "HTTPS", "TargetGroupAttributes": [{ "Key": "deregistration_delay.timeout_seconds", "Value": "20" }], "Targets": [ { "Id": {"Ref" : "Instance1"}, "Port": 80 }, { "Id": {"Ref" : "Instance2"}, "Port": 80 } ], "UnhealthyThresholdCount": 3, "VpcId": {"Ref" : "VPC"}, "Tags" : [ { "Key" : "key", "Value" : "value" }, { "Key" : "key2", "Value" : "value2" } ] } }

YAML

TargetGroup: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: HealthCheckIntervalSeconds: 30 HealthCheckProtocol: HTTPS HealthCheckTimeoutSeconds: 10 HealthyThresholdCount: 4 Matcher: HttpCode: '200' Name: MyTargets Port: 10 Protocol: HTTPS TargetGroupAttributes: - Key: deregistration_delay.timeout_seconds Value: '20' Targets: - Id: Ref: Instance1 Port: 80 - Id: Ref: Instance2 Port: 80 UnhealthyThresholdCount: 3 VpcId: Ref: VPC Tags: - Key: key Value: value - Key: key2 Value: value2

将 Elastic Load Balancing 负载均衡器与 Elastic Load Balancing 目标组关联

下面的示例创建一个 Elastic Load Balancing 侦听器并将它与目标组和负载均衡器关联。

JSON

"ALBListener" : { "Type" : "AWS::ElasticLoadBalancingV2::Listener", "Properties" : { "DefaultActions" : [{ "Type" : "forward", "TargetGroupArn" : { "Ref" : "ALBTargetGroup" } }], "LoadBalancerArn" : { "Ref" : "ApplicationLoadBalancer" }, "Port" : "80", "Protocol" : "HTTP" } }, "ApplicationLoadBalancer" : { "Type" : "AWS::ElasticLoadBalancingV2::LoadBalancer", "Properties" : { "Scheme" : "internet-facing", "Subnets" : [ {"Ref" : "PublicSubnetAz1"}, {"Ref" : "PublicSubnetAz2"}], "SecurityGroups" : [{"Ref": "ALBSecurityGroup"}] } }, "ALBTargetGroup" : { "Type" : "AWS::ElasticLoadBalancingV2::TargetGroup", "Properties" : { "HealthCheckIntervalSeconds" : 60, "UnhealthyThresholdCount" : 10, "HealthCheckPath" : "/", "Name" : "MyTargetGroup", "Port" : 80, "Protocol" : "HTTP", "VpcId" : { "Ref": "MyVpc" } } }

YAML

ALBListener: Type: AWS::ElasticLoadBalancingV2::Listener Properties: DefaultActions: Type: forward TargetGroupArn: Ref: ALBTargetGroup LoadBalancerArn: Ref: ApplicationLoadBalancer Port: 80 Protocol: HTTP ApplicationLoadBalancer: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: Scheme: internet-facing Subnets: Ref: PublicSubnetAz1 Ref: PublicSubnetAz2 SecurityGroups: Ref: ALBSecurityGroup ALBTargetGroup: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: HealthCheckIntervalSeconds: 60 UnhealthyThresholdCount: 10 HealthCheckPath: / Name: MyTargetGroup Port: 80 Protocol: HTTP VpcId: Ref: MyVpc

指定 Elastic Load Balancing 目标组类型

以下示例将目标组类型指定为 instance

JSON

{ "Parameters": { "CidrBlockForVPC": { "Type": "String" } }, "Resources": { "VPC": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": { "Ref": "CidrBlockForVPC" } } }, "TargetGroup": { "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", "Properties": { "Port": 1000, "Protocol": "HTTPS", "TargetType": "instance", "VpcId": { "Ref": "VPC" } } } } }

YAML

Parameters: CidrBlockForVPC: Type: String Resources: VPC: Type: 'AWS::EC2::VPC' Properties: CidrBlock: !Ref CidrBlockForVPC TargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Port: 1000 Protocol: HTTPS TargetType: instance VpcId: !Ref VPC

本页内容: