2017-01-09 19 views
2

Я пытаюсь настроить мое упругое приложение Beanstalk Java с помощью переменных окружения через PROCFILE так:переменных окружения не доступны в Elastic Beanstalk PROCFILE

web: ./bin/myservice -Dhttp.port=$PORT 

Переменная PORT среды устанавливаются через пользовательский интерфейс AWS в Экран «Конфигурация программного обеспечения» моей среды beanstalk.

Однако журналы указывают, что $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: Это, похоже, проблема, связанная с подключаемым плагином плагинов sbt, который я использую для создания дистрибутивного zip-архива проекта. Файл bin/myservice, который он создает, интерпретирует $ PORT буквально и передает это приложение.

+0

Я пытаюсь сделать то же самое, использовать переменную в моем PROCFILE. Вам когда-нибудь не повезло? – danieljimenez

ответ

1

Попробуйте удалить -Dhttp.port=$PORT с Procfile.

В ui в разделе «Конфигурация программного обеспечения» попробуйте установить переменную JAVA_OPTS на номер -Dhttp.port=9000 (замените 9000 на любой порт, который использует ваш прокси-сервер nginx - по умолчанию - 5000).

enter image description here

+0

Я не вижу «Параметры командной строки JVM» в пользовательском интерфейсе beanstalk. – novon

+0

Вы используете тип контейнера Java SE @novon? http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-platform.html –

+0

Да, это то, что я выбрал. – novon

 Смежные вопросы

  • Нет связанных вопросов^_^