GAE app.yaml:如何设置包含句点的 env 变量



我正在使用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

试试这个:

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

app.yaml中的env_variables部分用于设置环境变量。名称中不允许使用点,因此例外是有意义的。

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

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

另一个答案不再正确。属性名称现在命名为 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

对于正式发布的灵活环境,请使用此格式。

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

看这里 .

最新更新