You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elastic Beanstalk .ebextensions配置:基于环境选择安全组

实现Elastic Beanstalk按环境自动选择负载均衡器安全组

核心思路是利用Elastic Beanstalk内置的AWSEBEnvironmentName环境变量,在.ebextensions配置文件中通过container_commands执行Shell条件判断,动态配置负载均衡器的安全组。

具体配置步骤

  1. 在应用代码根目录下创建(或修改).ebextensions/lb-security-group.config文件,内容如下:
option_settings:
  # 先设置默认的非生产环境安全组
  aws:elbv2:loadbalancer:
    SecurityGroups: 'sg-nonPRODXXX'

container_commands:
  01_switch_prod_lb_security_group:
    command: |
      # 判断当前环境名是否符合生产环境规则,这里用前缀匹配,可改成精确匹配
      if [[ "$AWSEBEnvironmentName" == PROD_* ]]; then
        # 替换EB内部配置中的安全组ID为生产环境值
        sed -i "s/sg-nonPRODXXX/sg_Prodxxx/g" /opt/elasticbeanstalk/config/private/option_settings
      fi
    # 仅当环境名匹配生产规则时执行该命令(可选优化)
    test: "[[ \"$AWSEBEnvironmentName\" == PROD_* ]]"
  1. 配置细节说明:
    • option_settings中先定义默认的非生产安全组,确保非生产环境直接生效
    • 若你的生产环境名是精确的PROD_namexxxx,可把判断逻辑改成[ "$AWSEBEnvironmentName" = "PROD_namexxxx" ]
    • sed命令修改EB内部配置文件,EB会在后续部署流程中自动应用这个修改
    • test字段用于提前过滤执行条件,避免不必要的命令运行

关键注意事项

  • AWSEBEnvironmentName是EB自动注入的环境变量,无需额外配置
  • 务必替换配置中的安全组ID为你实际的生产/非生产安全组ID
  • 如果是VPC环境,要确保负载均衡器安全组和EC2实例安全组的规则匹配,避免流量阻断
  • 部署前建议先在非生产环境测试配置,确认安全组切换逻辑正常

内容的提问来源于stack exchange,提问作者Andy P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:25:40