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

Posted

技术标签:

【中文标题】Elastic Beanstalk 在环境变量更新时失败【英文标题】:Elastic Beanstalk fails on environment variables update 【发布时间】:2020-09-15 04:05:30 【问题描述】:

我已将我的 Spring Boot 应用程序部署到具有 Corretto 11 running on 64bit Amazon Linux 2/3.0.1 平台的 ELB。

当我尝试从 AWS 控制台 (Configuration -> Software) 添加新环境变量并点击 Apply 时,更新失败并回滚到之前的配置。

这是我从环境仪表板上的 AWS 控制台获得的信息

以下是一些可能有用的日志

有趣的部分是当我创建一个全新的环境并上传我的.jar 文件并在我的环境实例化时添加环境变量它可以工作(意味着环境变量设置正确)。当我在环境已经存在时尝试更新我的环境变量时,就会出现问题。我错过了什么吗?

我尝试在我的circleci 中的$ eb deploy 之后使用$ eb setenv,但我仍然遇到同样的错误。

【问题讨论】:

在我的操场 EB 上测试了这个 - 也失败了。有趣。 从昨天开始就遇到了同样的问题。无法添加新的环境变量。同样的错误! 【参考方案1】:

我一直在研究这个。现在我知道它失败的原因了。

原因是当您将 env 变量添加到您的 EB 时,EB 引擎将下载最后一个应用程序版本,解压缩并替换它作为当前应用程序。

这意味着,no deployment hooks.ebextenstions 脚本未执行。因此,如果您在部署期间进行任何应用程序设置,它不会被重新应用,从而导致失败。

这是基于我自己使用Python 3.7 running on 64bit Amazon Linux 2/3.0.3single-instance EB 类型的观察。

【讨论】:

【参考方案2】:

我找到了解决方法。如果您将部署设置为不可变,这将消失,因为它将为您创建一个全新的 ec2 实例。如果您有配额限制,这不是最好的解决方案,但它可以工作。

【讨论】:

以上是关于Elastic Beanstalk 在环境变量更新时失败的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Elastic Beanstalk 为 AWS CDK 设置环境变量?

Elastic Beanstalk 滚动环境配置更新

Elastic Beanstalk 最大环境变量长度

Elastic Beanstalk 始终在从 Codebuild 部署时更新环境

AWS Elastic Beanstalk Docker 环境变量

Docker 主机的 Elastic Beanstalk 环境变量