GAE app.yaml: Как установить переменную env, содержащую точки?
Я проверяю управляемые виртуальные машины GAE, используя app.yaml, как описано здесь https://cloud.google.com/appengine/docs/managed-vms/java/configuring-your-app-with-app-yaml
Когда я делаю
env_variables:
java.util.logging.config.file: 'WEB-INF/logging.properties'
Я получаю исключение
google.appengine.api.yaml_errors.EventError: Value 'java.util.logging.config.file' for key in EnvironmentVariables does not match expression '^(?:[a-zA-Z_][a-zA-Z0-9_]*)$'
Есть ли способ указать кастом logging.properties
через app.yaml?
3 ответа
Для общедоступной гибкой среды используйте этот формат.
env_variables:
JETTY_ARGS: -Djava.util.logging.config.file=WEB-INF/logging.properties
Смотрите здесь.
Другой ответ больше не верен. Имя свойства теперь называется JAVA_OPTS
Полные "секретные" имена переменных здесь https://github.com/GoogleCloudPlatform/jetty-runtime
Теперь это правильная настройка:
env_variables:
JAVA_OPTS: -Djava.util.logging.config.file=webapps/root/WEB-INF/logging.properties
Попробуй это:
env_variables:
JAVA_USER_OPTS: -Djava.util.logging.config.file=webapps/root/WEB-INF/logging.properties
env_variables
раздел в app.yaml
для установки переменных среды. Точки в их именах не допускаются, поэтому исключение имеет смысл.
Вы пытаетесь установить java.util.logging.config.file
, который является системным свойством, а не переменной среды. Для его установки необходимо предоставить -Djava.util.logging.config.file=<value>
аргумент при запуске Java. GAE Гибкое изображение обеспечивает JAVA_USER_OPTS
Переменная окружения для настройки командной строки Java, так что вы можете использовать ее для настройки параметров JUL (как теперь также рекомендуется в файле readme).
Также, WEB-INF/logging.properties
значение не работает для меня, так как текущий каталог $JETTY_BASE
не $JETTY_BASE/webapps/root
,