Elastic Beanstalk 最大环境变量长度

Posted

技术标签:

【中文标题】Elastic Beanstalk 最大环境变量长度【英文标题】:Elastic Beanstalk Maximum Environment Variable Length 【发布时间】:2020-06-02 09:44:32 【问题描述】:

我在运行 Django 的生产 Elastic Beanstalk 中尝试设置超过 100 个环境变量时遇到了困难。 AWS docs 提到了

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

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

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

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

    通过

    option_settings:

    选项名称: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 字节限制?

【问题讨论】:

【参考方案1】:

似乎没有办法在 EBS 中增加它作为硬编码限制 (EnvironmentVariables default value length is greater than 4096)。它们还链接到那里的解决方法。

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

【讨论】:

以上是关于Elastic Beanstalk 最大环境变量长度的主要内容,如果未能解决你的问题,请参考以下文章

VPC 中的 Elastic Beanstalk 环境变量

AWS Elastic Beanstalk Docker 环境变量

Elastic Beanstalk 多容器 Docker 环境变量

Docker 主机的 Elastic Beanstalk 环境变量

Docker 主机的 Elastic Beanstalk 环境变量

Elastic Beanstalk 在环境变量更新时失败