Как исправить ошибку CloudFormation «Предоставленные балансировщики нагрузки могут быть недействительными. Убедитесь, что они существуют, и повторите попытку.

когда я пытаюсь создать группу Autoscale с балансировщиком нагрузки приложений со следующим yml-файлом облачной информации

    LoadBalancer: 
      Type: AWS::ElasticLoadBalancingV2::LoadBalancer
      Properties: 
        Type: application
        Subnets: 
          Ref: VPCZoneIdentifier  

    AutoScalingGroup:
      Type: AWS::AutoScaling::AutoScalingGroup
      DependsOn: LoadBalancer
      Properties:
        AvailabilityZones: 
          Ref: "AvailabilityZones"
        Cooldown: 120
        DesiredCapacity:
          Ref: DesiredCapacityASG
        LaunchConfigurationName: 
          Ref: LaunchConfiguration
        MaxSize:
          Ref: MaxSizeASG
        MinSize:
          Ref: MinSizeASG
        LoadBalancerNames: 
          - Ref: "LoadBalancer"
        TargetGroupARNs:
          - !Ref TargetGroup

Я получил сообщение об ошибке: «Предоставленные балансировщики нагрузки могут быть недействительными. Убедитесь, что они существуют, и повторите попытку. (Сервис: AmazonAutoScaling; Код состояния: 400; Код ошибки: ValidationError; Идентификатор запроса :)»




Ответы (2)


эта ошибка возникает из-за того, что вы использовали LoadBalancerNames для балансировки нагрузки приложения, как указано здесь

чтобы исправить это: удалите LoadBalancerNames и оставьте TargetGroupARN в свойствах

LoadBalancerNames:
- Ссылка: "LoadBalancer"

поэтому файл yml будет выглядеть так:

    AutoScalingGroup:
      Type: AWS::AutoScaling::AutoScalingGroup
      DependsOn: LoadBalancer
      Properties:
        AvailabilityZones: 
          Ref: "AvailabilityZones"
        Cooldown: 120
        DesiredCapacity:
          Ref: DesiredCapacityASG
        LaunchConfigurationName: 
          Ref: LaunchConfiguration
        MaxSize:
          Ref: MaxSizeASG
        MinSize:
          Ref: MinSizeASG
        TargetGroupARNs:
          - !Ref TargetGroup
person Yasser    schedule 24.04.2020
comment
Это должен быть список строк. так что это будет примерно так - [! Ref TargetGroup] - person Kavyesh Shah; 05.01.2021
comment
@KavyeshShah это не должно быть [ !Ref TargetGroup ] , поскольку это файл yml, - уже обозначает список, поэтому квадратные скобки не нужны, но в JSON они есть - person Blank; 22.03.2021

Если вы используете модуль ansible ec2_asg и достигли его, замените load_balancers: на target_group_arns и передайте ARN целевой группы.

person Jobin Joseph    schedule 16.04.2021