Назад | Перейти на главную страницу

Как добавить правило ALB в существующий бессерверный шаблон

Итак, я пытаюсь добавить правило для / synchrony / *, которое указывало бы на целевую группу «synchrony».

Вот мой существующий шаблон.

ConfluenceALB:
  Properties:
    Scheme: internal
    SecurityGroups:
    - Ref: ConfluenceAlbSg
    - Ref: ConfluenceAsgSg
    Subnets:
      - Fn::ImportValue: ${self:custom.${opt:stage}-VpcName, self:custom.${self:provider.stage}-VpcName}-PrivateSubnet1Id
      - Fn::ImportValue: ${self:custom.${opt:stage}-VpcName, self:custom.${self:provider.stage}-VpcName}-PrivateSubnet2Id
      - Fn::ImportValue: ${self:custom.${opt:stage}-VpcName, self:custom.${self:provider.stage}-VpcName}-PrivateSubnet3Id
    Tags:
    - Key: Name
      Value:
          Fn::Join: [ "-", [ Ref: "AWS::StackName", "confluencealb" ] ]
  Type: "AWS::ElasticLoadBalancingV2::LoadBalancer"

ConfluenceAlbListener:
  Properties:
    Certificates:
      - CertificateArn: ${self:custom.${opt:stage}-SSLCertId, self:custom.${self:provider.stage}-SSLCertId}
    DefaultActions:
    - Type: forward
      TargetGroupArn:
        Ref: ConfluenceTargetGroup
    LoadBalancerArn:
      Ref: ConfluenceALB
    Port: 443
    Protocol: HTTPS
  Type: AWS::ElasticLoadBalancingV2::Listener

ConfluenceTargetGroup:
  Properties:
    HealthCheckIntervalSeconds: 60
    UnhealthyThresholdCount: 10
    HealthCheckPath: /
    Name: "confluence" 
    Port: 8080
    Protocol: HTTP
    VpcId:
      Fn::ImportValue: ${self:custom.${opt:stage}-VpcName, self:custom.${self:provider.stage}-VpcName}-VpcId
  Type: AWS::ElasticLoadBalancingV2::TargetGroup

SynchronyTargetGroup:
  Properties:
    Name: "synchrony" 
    Port: 8091
    Protocol: HTTP
    VpcId:
      Fn::ImportValue: ${self:custom.${opt:stage}-VpcName, self:custom.${self:provider.stage}-VpcName}-VpcId
  Type: AWS::ElasticLoadBalancingV2::TargetGroup

Я не знаю, как это добавить, а документация AWS (облачная информация) кажется скудной. Могу ли я добавить это под блок слушателя?

Мы исследовали, как это делается для нового проекта, и наткнулись на этот пример: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ecs.html (как бы хороши ни были документы AWS, иногда они почти запутываются!)

Думаю, это подходящий вам раздел:

ECSALBListenerRule:
Type: AWS::ElasticLoadBalancingV2::ListenerRule
DependsOn: ALBListener
Properties:
  Actions:
  - Type: forward
    TargetGroupArn: !Ref 'ECSTG'
  Conditions:
  - Field: path-pattern
    Values: [/]
  ListenerArn: !Ref 'ALBListener'
  Priority: 1

При этом он относится как к ресурсу слушателя «ALBListener», так и к группе безопасности «ECSTG». Пример касается ECS, но не думаю, что это действительно важно для ответа, который вам нужен.