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.3
和single-instance
EB 类型的观察。
【讨论】:
【参考方案2】:我找到了解决方法。如果您将部署设置为不可变,这将消失,因为它将为您创建一个全新的 ec2 实例。如果您有配额限制,这不是最好的解决方案,但它可以工作。
【讨论】:
以上是关于Elastic Beanstalk 在环境变量更新时失败的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Elastic Beanstalk 为 AWS CDK 设置环境变量?
Elastic Beanstalk 始终在从 Codebuild 部署时更新环境