Присоединение нескольких целевых групп к AutoscalingGroup - PullRequest
0 голосов
/ 03 мая 2019

Я разрабатываю инфраструктурное решение для балансировки трафика между двумя различными веб-приложениями, размещенными в одном и том же экземпляре на разных путях и портах.

Я пытаюсь сделать Cloudformation, чтобы создать ALB, 1 прослушиватель, 2 целевые группы, указывающие на экземпляр, который создает группа автоматического масштабирования, и 2 разных правила прослушивателя с обеими целевыми группами.

Как я прочитал в документации AWS, я должен определить в свойствах AutoSG целевые группы, но у меня возникают проблемы с его определением.

Я тоже не уверен, что я делаю все правильно.

Я получаю сообщение об ошибке, используя этот код (я думаю, что это неправильная часть, когда я делаю ссылку в создании группы автоматического масштабирования на целевые группы)

       "TargetGroupARNs": [
                    {
                        "Ref": "DefaultTG"
                    },
                    {
                        "Ref": "SecondTG"
                    }
        ],

Эти целевые группы определены так:

 "DefaultTG" : {
          "Type" : "AWS::ElasticLoadBalancingV2::TargetGroup",
          "Properties" : {
          "HealthCheckIntervalSeconds": 30,
          "HealthCheckProtocol": "HTTPS",
          "HealthCheckPath": "/home",
          "HealthCheckTimeoutSeconds": 10,
          "HealthyThresholdCount": 4,
          "Matcher" : {
          "HttpCode" : "200"
          },
          "Name": "Default",
          "Port": 4443,
          "Protocol": "HTTPS",
          "UnhealthyThresholdCount": 3,
          "VpcId": {"Ref" : "VpcID"}
    },

Код слушателя и одно правило слушателя:

   "ALBListener": {
      "Type": "AWS::ElasticLoadBalancingV2::Listener",
      "Properties": {
        "DefaultActions": [{
        "Type": "redirect",
            "RedirectConfig" : {
            "TargetGroupArn": { "Ref": "DefaultTG" }
            }
        }],
        "LoadBalancerArn": { "Ref": "APIServerELB" },
        "Port": "443",
        "Protocol": "TCP"
       }
    },
    "DefListenerRule": {
      "Type": "AWS::ElasticLoadBalancingV2::ListenerRule",
      "Properties": {
          "Actions": [
                    {
                     "Type": "forward",
                     "TargetGroupArn": {
                     "Ref": "DefaultTG"
                    }
            }
            ],
          "Conditions" : [
                {
                  "Field" : "path-pattern",
                  "Values" : [ "/home" ]
                }
              ],
                "ListenerArn": {
                    "Ref": "ALBListener"
                }
          }
    },

И ошибка:

Template validation error: Invalid template resource property 'DefaultTG'

Я ожидаю, что Cloudformation создаст один ALB с слушателем и двумя правилами слушателя, используя 2 целевые группы, указывающие на экземпляры, созданные группой Autoscaling.

...