AWS ALB маршрутизация - запрошенный URL не найден - PullRequest
0 голосов
/ 01 января 2019

У меня есть Microservice, выделенный в качестве внешнего интерфейса для административной области веб-сайта.Микросервис имеет свой маршрут, /admin.Что дает мне 404 error, когда я пытаюсь получить доступ.Ниже приведен отрывок из облачного шаблона Microservice.

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

  TaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties:
      Family: activity-monitor-service
      ContainerDefinitions:
        - Name: activity-monitor-service
          Essential: true
          Image: registry.hub.docker.com/abameerdeen/activity_monitor:v4
          Memory: 128
          Environment:
            - Name: PRODUCT_SERVICE_URL
              Value: !Ref ProductServiceUrl
          PortMappings:
            - ContainerPort: 80
          LogConfiguration:
            LogDriver: awslogs
            Options:
              awslogs-group: !Ref CloudWatchLogsGroup
              awslogs-region: !Ref AWS::Region

  CloudWatchLogsGroup:
    Type: AWS::Logs::LogGroup
    Properties:
      LogGroupName: !Ref AWS::StackName
      RetentionInDays: 365

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

  ListenerRule:
    Type: AWS::ElasticLoadBalancingV2::ListenerRule
    Properties:
      ListenerArn: !Ref Listener
      Priority: 2
      Conditions:
        - Field: path-pattern
          Values: [ "/admin/*" ]
      Actions:
        - TargetGroupArn: !Ref TargetGroup
          Type: forward

У меня также есть Application Balancer (ALB) в инфраструктуре.Вот мой проект: https://github.com/ammarisme/aws-cloudformation.git

1 Ответ

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

Свыше ListenerRule соответствует файлам внутри папки администратора (например: - index.html), а не пути /.Итак, я добавил недостающие ListenerRule, как указано ниже.

ListenerRule2:
    Type: AWS::ElasticLoadBalancingV2::ListenerRule
    Properties:
      ListenerArn: !Ref Listener
      Priority: 3
      Conditions:
        - Field: path-pattern
          Values: [ "/admin" ]
      Actions:
        - TargetGroupArn: !Ref TargetGroup
          Type: forward
...