AWS Elastic Beanstalk未部署.ebextensions文件,Spring Boot环境变量失效
解决AWS Elastic Beanstalk部署Spring Kotlin应用时.ebextensions配置未生效的问题
使用Spring Kotlin开发的应用部署到AWS Elastic Beanstalk时,执行eb deploy仅完成JAR文件上传,.ebextensions目录下的环境变量配置未被识别或未上传。
当前配置信息
.elasticbeanstalk/config.yml
branch-defaults: master: environment: rest-api-env environment-defaults: DF-server-rest-api-env: branch: null repository: null global: application_name: rest-api default_ec2_keyname: aws-eb default_platform: Corretto 21 running on 64bit Amazon Linux 2023 default_region: eu-west-2 include_git_submodules: true instance_profile: null platform_name: null platform_version: null profile: s_t sc: git workspace_type: Application deploy: artifact: build/libs/ApplicationKotlin-0.0.1-SNAPSHOT.jar
.ebextensions/variables.config
option_settings: aws:elasticbeanstalk:application:environment: SCHEME: http HOST: localhost LOCALHOST: 127.0.0.1
解决方案
确保.ebextensions被包含在部署包内
当前配置指定仅上传单个JAR文件,而Elastic Beanstalk需要读取与JAR同层级的.ebextensions目录才能加载配置。需构建包含JAR和.ebextensions的ZIP归档包:- 整理部署包结构:
deploy-package.zip ├── .ebextensions/ │ └── variables.config └── build/libs/ApplicationKotlin-0.0.1-SNAPSHOT.jar - 修改config.yml中的
deploy.artifact路径为ZIP包路径,例如:deploy: artifact: build/deploy-package.zip
可通过Gradle/Maven脚本自动生成符合要求的ZIP包。
- 整理部署包结构:
检查Git追踪状态
由于配置中指定sc: git,Elastic Beanstalk会通过Git获取部署文件。若.ebextensions未被Git追踪(如被.gitignore排除),部署时会被忽略:git add .ebextensions/ git commit -m "Include .ebextensions configuration"验证配置加载状态
部署完成后:- 登录EB控制台,进入对应环境的「配置」→「软件」,查看「环境属性」是否包含配置的变量。
- 执行
eb logs搜索ebextensions相关日志,排查加载错误。 - 登录EC2实例,查看
/opt/elasticbeanstalk/deployment/env文件,确认环境变量是否写入。
验证YAML语法正确性
确保variables.config的YAML格式无错误(如缩进、冒号后空格),语法错误会导致EB无法解析配置。
内容的提问来源于stack exchange,提问作者Sachin
相关产品推荐
相关产品推荐

