使用 AWS CloudFormation 对 AutoScalingPolicy 创建进行故障排除

Troubleshooting AutoScalingPolicy creation with AWS CloudFormation

在 AWS 中使用 CloudFormation 创建附加了 AutoScalingPolicy 的 AutoScalingGroup 时,您可能会遇到错误

the load balancer does not route traffic to the target group

如果将 AutoScalingPolicy 从脚本中排除,则相同的 CloudFormation 脚本运行良好。此外,在不使用 AutoScalingPolicy 的情况下使用 ResourceLable 作为脚本的输出,输出看起来是正确的。

假设:AutoScalingPolicy 和 LoadBalancer 或相应的 TargetGroup 之间存在未解决的依赖关系。

为确保在创建 AutoScalingPolicy 之前正确解析依赖关系并创建 LoadBalancer 和 TargetGroup,请使用 AutoScalingPolicy 中的 DependsOn 属性,引用 ELBListener:

myAutoScalingPolicy:
  Type: AWS::AutoScaling::ScalingPolicy
  DependsOn: myElbListener
  Properties:
    AutoScalingGroupName: !Ref myAutoScalingGroup
    PolicyType: TargetTrackingScaling
    TargetTrackingConfiguration:
      PredefinedMetricSpecification:
        PredefinedMetricType: ALBRequestCountPerTarget
        ResourceLabel: !Join 
          - '/' 
          - - !GetAtt myELB.LoadBalancerFullName
            - !GetAtt myELBTargetGroup.TargetGroupFullName
      TargetValue: '50'