502 Плохой шлюз: приложение узла на порте контейнера 5000 - PullRequest
0 голосов
/ 31 декабря 2018

Я разместил угловое приложение в качестве микросервиса в aws здесь: http://test -2079808347.us-east-2.elb.amazonaws.com: 5000 .Я получаю ошибку 502 Bad Gateway.Ниже приведен шаблон службы yaml и определение Задачи.Изображение, которое я использую, работает в локальной среде, когда я запускаю docker run -p 5000:5000 <image-tag>

    Resources:
      Service:
        Type: AWS::ECS::Service
        DependsOn: ListenerRule
        Properties:
          Cluster: !Ref Cluster
          Role: !Ref ServiceRole
          DesiredCount: !Ref DesiredCount
          TaskDefinition: !Ref TaskDefinition
          LoadBalancers:
            - ContainerName: "website-service"
              ContainerPort: 5000
              TargetGroupArn: !Ref TargetGroup

      TaskDefinition:
        Type: AWS::ECS::TaskDefinition
        Properties:
          Family: website-service
          ContainerDefinitions:
            - Name: website-service
              Essential: true
              Image: registry.hub.docker.com/abameerdeen/activity_service:latest
              Memory: 128
              Environment:
                - Name: PRODUCT_SERVICE_URL
                  Value: !Ref ProductServiceUrl
              PortMappings:
                - ContainerPort: 5000
              LogConfiguration:
                LogDriver: awslogs
                Options:
                  awslogs-group: !Ref CloudWatchLogsGroup
                  awslogs-region: !Ref AWS::Re
  TargetGroup:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Properties:
      VpcId: !Ref VPC
      Port: 5000
      Protocol: HTTP
      Matcher:
        HttpCode: 200-299
      HealthCheckIntervalSeconds: 10
      HealthCheckPath: /profile
      HealthCheckProtocol: HTTP
      HealthCheckTimeoutSeconds: 5
      HealthyThresholdCount: 2

Ниже приведен шаблон yaml балансировщика нагрузки.

Resources:
  LoadBalancer:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Properties:
      Name: !Ref EnvironmentName
      Subnets: !Ref Subnets
      SecurityGroups:
        - !Ref SecurityGroup
      Tags:
        - Key: Name
          Value: !Ref EnvironmentName

  LoadBalancerListener:
    Type: AWS::ElasticLoadBalancingV2::Listener
    Properties:
      LoadBalancerArn: !Ref LoadBalancer
      Port: 5000
      Protocol: HTTP
      DefaultActions:
        - Type: forward
          TargetGroupArn: !Ref DefaultTargetGroup

  # We define a default target group here, as this is a mandatory Parameters
  # when creating an Application Load Balancer Listener. This is not used, instead
  # a target group is created per-service in each service template (../services/*)
  DefaultTargetGroup:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Properties:
      Name: !Sub ${EnvironmentName}-default
      VpcId: !Ref VPC
      Port: 80
      Protocol: HTTP

Ниже приведеностек облачной информации.enter image description here

1 Ответ

0 голосов
/ 01 января 2019

Ошибка была в том, что у меня не было службы, прослушивающей порт 5000 со стороны Microservice.Виноват.Так что, если кто-то сталкивался с тем же.Убедитесь, что у вас есть правильное изображение.Также убедитесь, что ListenerRule и TargetGroup установлены правильно.

например: -

TargetGroup:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Properties:
      VpcId: !Ref VPC
      Port: 80
      Protocol: HTTP
      Matcher:
        HttpCode: 200-299
      HealthCheckIntervalSeconds: 10
      HealthCheckPath: /
      HealthCheckProtocol: HTTP
      HealthCheckTimeoutSeconds: 5
      HealthyThresholdCount: 2

  ListenerRule:
    Type: AWS::ElasticLoadBalancingV2::ListenerRule
    Properties:
      ListenerArn: !Ref Listener
      Priority: 100
      Conditions:
        - Field: path-pattern
          Values: [ "/*" ]
      Actions:
        - TargetGroupAr
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...