环境变量在 Elastic Beanstalk Procfile 中不可用
Environment variables not available in Elastic Beanstalk Procfile
我正在尝试通过 Procfile 使用环境变量来配置我的 elastic beanstalk java 应用程序,如下所示:
web: ./bin/myservice -Dhttp.port=$PORT
PORT
环境变量是通过 AWS ui 在我的 beantalk 环境的 "Software Configuration" 屏幕中设置的。
但是,日志表明 $PORT
没有被插入:
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.whatever.services.myservice.Main.main(Main.scala)
Caused by: java.lang.NumberFormatException: For input string: "$PORT"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
向我的应用程序传递选项的正确方法是什么?
编辑 1: 这似乎是与我用来创建项目的可分发 zip 存档的 sbt 本机打包程序插件相关的问题。它生成的 bin/myservice 文件按字面解释 $PORT 并将其传递给应用程序。
尝试从 Procfile
中删除 -Dhttp.port=$PORT
。
在 "Software Configuration" 中的 ui 中,尝试将变量 JAVA_OPTS
设置为 -Dhttp.port=9000
(将 9000 替换为您的 nginx 代理正在使用的任何端口——默认为 5000我相信)。
我正在尝试通过 Procfile 使用环境变量来配置我的 elastic beanstalk java 应用程序,如下所示:
web: ./bin/myservice -Dhttp.port=$PORT
PORT
环境变量是通过 AWS ui 在我的 beantalk 环境的 "Software Configuration" 屏幕中设置的。
但是,日志表明 $PORT
没有被插入:
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.whatever.services.myservice.Main.main(Main.scala)
Caused by: java.lang.NumberFormatException: For input string: "$PORT"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
向我的应用程序传递选项的正确方法是什么?
编辑 1: 这似乎是与我用来创建项目的可分发 zip 存档的 sbt 本机打包程序插件相关的问题。它生成的 bin/myservice 文件按字面解释 $PORT 并将其传递给应用程序。
尝试从 Procfile
中删除 -Dhttp.port=$PORT
。
在 "Software Configuration" 中的 ui 中,尝试将变量 JAVA_OPTS
设置为 -Dhttp.port=9000
(将 9000 替换为您的 nginx 代理正在使用的任何端口——默认为 5000我相信)。