ElasticBeanstalk 在与 Terraform 共享的 ALB 中使用 HTTPS:443 而不是 HTTP:80 创建默认侦听器规则

Mil*_*erC 0 amazon-web-services amazon-elastic-beanstalk terraform aws-application-load-balancer

在 terraform 中创建具有共享负载均衡的 ElasticBeanstalk 环境时,是否可以将默认侦听器规则设置为使用 HTTPS:443 侦听器而不是 HTTP:80 侦听器?

我的 ALB 将端口 80 作为侦听器,将流量从 http 重定向到 https。现在,当 beanstalk 创建环境时,它会在 HTTP:80 侦听器中创建侦听器规则,但我不希望它这样做。在控制台中,我可以创建一个具有共享 ALB 的环境,并选择默认侦听器端口为 443(HTTPS),并将在 443 侦听器中创建默认规则,这正是我想要发生的情况。

我正在使用 terraform 构建此项目,并且在 ElasticBeanstalk常规选项的常规选项中,我没有看到将默认侦听器规则设置为使用 HTTPS:443 作为 elbv2 设置的选项。

Mil*_*erC 7

在这方面花费了太多时间后,答案是为:443侦听器分配默认规则。我通过查看这个 AWS 文档意识到了这一点,该文档在 ebextension 配置文件链接的规则块中指定了默认选项。

  dynamic "setting" {
    for_each = var.enable_shared_alb ? [1] : []
    content {
      namespace = "aws:elbv2:listener:443"
      name      = "Rules"
      # Setting the default value here prevent 
      # the default rule from being created in the ALB's HTTP:80 listener
      # Instead the default rule will be created in the HTTPS:443 listener
      value     = "default,some-other-rule-name"
    }
  }
Run Code Online (Sandbox Code Playgroud)