繁体   English   中英

使用 Jasypt 在 AWS Elastic Beanstalk 上为 Spring Boot 应用程序传递环境变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM