Elastic Beanstalk 实例未附加到自定义负载均衡器

Elastic Beanstalk instances not being attached to custom load balancer

我有一个带有以下 .ebextensions 配置文件的 Elastic Beanstalk 实例来设置自定义负载均衡器。

Resources:
  ApiLoadBalancer:
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
      ConnectionSettings:
         IdleTimeout: 900
      Listeners:
      - InstancePort: '80'
        InstanceProtocol: 'HTTP'
        LoadBalancerPort: '443'
        Protocol: 'HTTPS'
        SSLCertificateId: 'certificate-id'
      HealthCheck:
         HealthyThreshold: '3'
         Interval: '30'
         Target: 'HTTP:80/api/healthcheck'
         Timeout: '5'
         UnhealthyThreshold: '5'
      AvailabilityZones:
      - "us-east-1a"

但是,每当重建 beantalk 环境时,我的自定义负载均衡器都会按定义创建,但 EC2 实例本身并未附加到它。

如何让实例使用我的自定义负载均衡器?

您需要通过弹性 beantalk 命名空间配置弹性 beantalk 负载均衡器。您不应通过 Type: AWS::ElasticLoadBalancing::LoadBalancer 设置全新的负载均衡器,而应以这种方式指定您的负载均衡器配置(假设您要根据发布的配置使用 Classic Load Balancer)。

option_settings:
  aws:elb:listener:443:
    ListenerProtocol: HTTPS
    SSLCertificateId: arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678
    InstancePort: 80
    InstanceProtocol: HTTP
  aws:elb:listener:
    ListenerEnabled: false