EnvironmentVariables 默认值长度大于 4096

cha*_* ly 7 ruby-on-rails amazon-web-services amazon-elastic-beanstalk

我正在尝试将 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.
Run Code Online (Sandbox Code Playgroud)

我找到了这个

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

此处的亚马逊文档中。

我的环境属性键值组合比 4096 个字符大得多。

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

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

有没有人有这方面的经验?

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

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

提前谢谢了!

Ton*_*ent 5

Beanstalk 在底层使用 Cloudformation 来提供环境。因此,环境变量是有限制的。您不能增加此限制,因为它在内核中被硬编码为PAGE_SIZE.

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