【问题标题】:GAE app.yaml: How to set env variable that contains periods?GAE app.yaml:如何设置包含句点的环境变量?
【发布时间】:2016-06-19 02:47:20
【问题描述】:

我正在使用 app.yaml 检出 GAE 托管的虚拟机,如此处所述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_]*)$'

有没有办法通过app.yaml指定自定义logging.properties

【问题讨论】:

标签: google-app-engine yaml app-engine-flexible


【解决方案1】:

试试这个:

env_variables:
  JAVA_USER_OPTS: -Djava.util.logging.config.file=webapps/root/WEB-INF/logging.properties

app.yaml 中的env_variables 部分用于设置环境变量。点在它们的名字中是not allowed,所以这个例外是有道理的。

您正在尝试设置java.util.logging.config.file,这是一个系统属性,而不是环境变量。要设置它,您需要在启动 Java 时提供 -Djava.util.logging.config.file=<value> 参数。 GAE Flexible image 提供JAVA_USER_OPTS 环境变量来自定义Java 命令行,因此您可以使用它来自定义JUL 设置(现在也在图像readme 中推荐)。

另外,WEB-INF/logging.properties 值对我不起作用,因为当前目录是 $JETTY_BASE,而不是 $JETTY_BASE/webapps/root

【讨论】:

【解决方案2】:

另一个答案不再正确。属性名称现在命名为 JAVA_OPTS

这里有完整的“秘密”变量名 https://github.com/GoogleCloudPlatform/jetty-runtime#providing-loggingproperties-via-the-web-application

现在这是正确的设置:

env_variables:
  JAVA_OPTS: -Djava.util.logging.config.file=webapps/root/WEB-INF/logging.properties

【讨论】:

【解决方案3】:

对于普遍可用的柔性环境,请使用此格式。

env_variables:
  JETTY_ARGS: -Djava.util.logging.config.file=WEB-INF/logging.properties

here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-27
    • 2014-05-05
    • 1970-01-01
    • 2017-06-27
    • 2019-06-10
    • 2019-05-15
    • 2014-08-31
    • 2019-07-02
    相关资源
    最近更新 更多