环境变量在 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我相信)。