Java 11 标准环境与 ApiProxy 不兼容?
Java 11 Standard Environment incompatible with ApiProxy?
我在 App Engine 的 Java 11 标准环境中有一个应用程序 运行,我想确保在应用程序的特定版本(创建它们的版本)上调用任务).我可以将 AppEngineRouting
字段添加到任务创建请求以实现此目的,但有一个问题: 通常 ,可以使用 ApiProxy.getCurrentEnvironment().getVersionId()
访问版本 ID,或者在至少它曾经是在古老的 Java 8 标准环境下。在 Java 11 下,ApiProxy.getCurrentEnvironment()
对我来说一直是 null
。
我是不是遗漏了什么,或者 ApiProxy
已经秘密地 "deprecated" Java 11 标准?如果是这样,目前接受的获取应用程序、版本和服务 ID 等信息的方法是什么,或者请求截止日期前剩余的毫秒数?
环顾四周后,我意识到在 Java 11 标准环境系统下,这些可以作为 App Engine 设置的环境变量 [1] 使用。如果您需要获取以前在 ApiProxy
中可用的内容,最好的办法是通过 System.getenv(String name)
.
读取相应的变量
此外,您可以在 app.yaml
文件中设置自定义环境变量,而不必通过 -Dname=value
.
将它们传递给您的程序
[1] https://cloud.google.com/appengine/docs/standard/java11/runtime#environment_variables
我在 App Engine 的 Java 11 标准环境中有一个应用程序 运行,我想确保在应用程序的特定版本(创建它们的版本)上调用任务).我可以将 AppEngineRouting
字段添加到任务创建请求以实现此目的,但有一个问题: 通常 ,可以使用 ApiProxy.getCurrentEnvironment().getVersionId()
访问版本 ID,或者在至少它曾经是在古老的 Java 8 标准环境下。在 Java 11 下,ApiProxy.getCurrentEnvironment()
对我来说一直是 null
。
我是不是遗漏了什么,或者 ApiProxy
已经秘密地 "deprecated" Java 11 标准?如果是这样,目前接受的获取应用程序、版本和服务 ID 等信息的方法是什么,或者请求截止日期前剩余的毫秒数?
环顾四周后,我意识到在 Java 11 标准环境系统下,这些可以作为 App Engine 设置的环境变量 [1] 使用。如果您需要获取以前在 ApiProxy
中可用的内容,最好的办法是通过 System.getenv(String name)
.
此外,您可以在 app.yaml
文件中设置自定义环境变量,而不必通过 -Dname=value
.
[1] https://cloud.google.com/appengine/docs/standard/java11/runtime#environment_variables