0

我正在为我的 ECS 服务构建云形成模板(YML 格式)并停留在负载均衡器目标组中,它无法附加到我的 ECS 实例并尝试Targets通过引用此官方 AWS 文档https://docs 来添加。 aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html

下面是我的目标组,当我多次停止启动(终止)我的实例时,我的实例 ID 将一直在变化并且不会是静态的,例如 VPC 或子网 ID,以及如何在 Id 字段中动态构建值目标?

TargetGroup:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Properties: 
      Matcher: 
       HttpCode: "200"
      Name: "foo"
      Port: "8080"
      Protocol: "HTTP"
      Targets:
        Id: String // This I need to build dynamically
        Port: 8080
      TargetType: "instance"
      UnhealthyThresholdCount: 3
      VpcId: "vpc-79251d11"            

注意:我尝试搜索 EC2 资源并找到此https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2.html但它对我没有帮助。我也在使用 ASG 和 LC 来创建我的 ECS 实例。

4

1 回答 1

0

基于聊天中的讨论。

由于实例将在Auto Scaling Group中运行,因此无需直接在TargetGrouptype 的资源中 指定它们的 ID AWS::ElasticLoadBalancingV2::TargetGroup

相反TargetGroup,应在AWS::AutoScaling::AutoScalingGroup资源中提供 ARN。具体来说,TargetGroupARNs参数:

要与 Auto Scaling 组关联的目标组的 Amazon 资源名称 (ARN) 列表。实例注册为目标组中的目标,并将流量路由到目标组。

例如,由于您的AWS::ElasticLoadBalancingV2::TargetGroup资源被调用TargetGroup,当定义您的 ASG 时,您将执行以下操作(如果相同的模板文件):

MyASG:
    Type: AWS::AutoScaling::AutoScalingGroup
    Properties: 
      # only one parameter shown
      TargetGroupARNs: 
        - !Ref TargetGroup

Targets自然,您会跳过TargetGroup. 这将MyASG自动从TargetGroup.

于 2020-05-23T11:52:36.080 回答