首页 > 解决方案 > Elastic Beanstalk 最大环境变量长度

问题描述

我很难在运行 Django 的生产 Elastic Beanstalk 中设置超过 100 个环境变量。AWS文档提到

当以 key=value 格式存储为字符串时,所有环境属性的总大小不能超过 4,096 字节。

据我了解,有 3 种方法可以在 ELB 中设置环境变量。

  1. 通过eb cli例如eb setenv key=value(不起作用,因为在达到最大字符数后,由于最大长度会出错)

  2. 通过 EB GUI 配置 > 软件 > 环境变量(由于上述相同原因不起作用)

  3. 通过

    选项设置:

    • option_name:CUSTOM_ENV 值:暂存

我想 3) 也会因为同样的原因而失败。

我现在正在尝试从我的 S3 存储桶中下载variables.env文件,然后用它替换/opt/python/current/env

files:
  # Private key
  "/opt/python/current":
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: ****/env

这个想法是ELB通过该文件注入环境变量。不幸的是,部署出错了(权限错误)。

有没有办法绕过 ELB 环境变量的 4096 字节限制?

标签: pythondjangoamazon-elastic-beanstalkamazon-elb

解决方案


似乎没有办法在 EBS 中增加它作为硬编码限制(EnvironmentVariables 默认值长度大于 4096)。他们还链接到那里的解决方法。

否则,您可以尝试减少使用的字符数量,例如 TRUE -> 1,如本文所述https://insights.project-a.com/aws-elastic-beanstalk-when-not-to-use-it -b04dc95b2e9c。但当然这是不可扩展的,您可能会再次遇到同样的问题。


推荐阅读