[英]Deploying Spring Boot app on AWS Elastic Beanstalk — getting 502 error
[英]Pass environment variable on AWS Elastic Beanstalk for Spring Boot App using Jasypt
我正在 AWS Elastic Beanstalk 上部署我的 Spring Boot 应用程序。 我的 Web 应用程序使用 Jasypt,因此在 application.properties 文件中,我写下了jasypt.encryptor.password=
,目前此文件中的密码为空,我想将密码作为变量传递给 AWS Beanstalk 的配置。
在本地测试时,我在命令行中使用了java -jar myapp.jar --jasypt.encryptor.password=1234
,运行成功。 但是,在 AWS 上部署时,我在环境属性中添加了jasypt.encryptor.password
并将其值设置为 1234,应用程序无法运行。 日志说我不能将密码设置为空。 所以,此时 Beanstalk 并没有读取我刚刚设置的环境属性。 但它确实可以稍后读取属性,因为我在设置另一个属性并使用 GET API 打印它后对其进行了测试。
我的问题是:如何让 Elastic Beanstalk 在开始时运行/读取环境属性? 换句话说,如何让 EB 运行带有--jasypt.encryptor.password=1234
java -jar myapp.jar
?
非常感谢您!
Procfile不能使用环境变量。 使用 shell 脚本启动应用程序,而不是直接在Procfile中调用java -jar
。
简介:
web: /bin/sh start_server.sh
启动服务器.sh
#!/bin/bash
JAVA_OPTS='-Djasypt.encryptor.password=1234'
exec java $JAVA_OPTS -jar myapp.jar
参考资料: https : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.