【问题标题】:EnvironmentVariables default value length is greater than 4096EnvironmentVariables 默认值长度大于 4096
【发布时间】:2019-06-18 01:06:51
【问题描述】:

我正在尝试将 rails 应用程序部署到 Amazon Elastic Beanstalk(eb) 环境

我收到了这个错误:

Uploading: [##################################################] 100% Done...
2019-01-24 09:42:16    INFO    Environment update is starting.      
2019-01-24 09:42:26    ERROR   Service:AmazonCloudFormation, Message:Template format error: Parameter 'EnvironmentVariables' default value '[****]' length is greater than 4096.
2019-01-24 09:42:26    ERROR   Failed to deploy application.

我找到了这个

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

在亚马逊文档here.

我的环境属性键值组合起来远大于 4096 个字符。

由于大多数值是 API 和付款的凭据,因此我最终只有十几个键。

我的应用在 Heroku 中运行良好,环境变量没有这样的限制。我想知道 eb 中这种限制背后的原因是什么。

有人有这方面的经验吗?

就我而言,我想增加限制 (4096)。我不想仅仅为了适应 eb 限制而更改我的代码。

我也愿意采取任何解决方法来克服这 4096 个字符。

非常感谢!

【问题讨论】:

  • 如果您有很多可以存储为证书文件的长环境变量值,请参阅this issue
  • docs 还说“值最多可以包含 256 个字符。”,但是,此时我正在查看一个功能齐全的环境,其中有多个环境属性值,每个值超过 400 个字符...

标签: ruby-on-rails amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

Beanstalk 在底层使用 Cloudformation 来配置环境。因此,环境变量受到限制。您不能增加此限制,因为它在内核中被硬编码为PAGE_SIZE

这是一个很好的resource,它解释了解决此问题的替代方法。

【讨论】:

  • 我想我会采用混合方式来确保我可以运行应用程序并尽早看到 eb 的其他挑战。成功完成后,我将尝试您上面提到的方法。非常感谢。
  • 来自链接资源以外的相同资源。 Aws::SSM honeybadger.io/blog/configuration-with-ssm-parameter-store 上的新鲜博文
  • @MathieuJ.Thanks。更新答案
  • 感谢您的洞察力!尽管如此,这仍然是一个非常不方便的限制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 2018-10-21
  • 2014-12-15
  • 1970-01-01
相关资源
最近更新 更多