我已经关注了这个tutorial 。我注意到我需要设置 DATASTORE_SERVICE_ACCOUNT、DATASTORE_PRIVATE_KEY_FILE 环境变量才能配置凭据。
我想知道,是否有其他方法可以配置凭据而不需要设置环境变量? 如果没有其他方法,有人可以帮助我知道如何从用户那里读取这些变量,然后从 java 以编程方式设置它们吗? (我不想使用shell,我需要使用代码来设置它们)(注:我使用的是mac)。
任何帮助将不胜感激..
最佳答案
您的示例是一种在 Compute Engine
上运行的 Java 批处理作业,而不是在 App Engine
上运行。
- 计算引擎 =~ 云虚拟机(shell 终端)
- App Engine =~ Cloud Java Web Server(实际上它是由 Google 调整的 Jetty 服务器)
在Java中,您可以使用System.getProperty("ENV_VAR_NAME");
访问环境变量...但我非常怀疑这就是您想要的。
在您的示例中,这些环境变量用于告诉 Compute Engine 运行时您要使用哪个 Google App Engine 数据存储区。
使用 Google App Engine,每个应用程序都有自己的数据存储区,这意味着您不需要任何特定配置。只是获取一个 datastoreService 实例。
请参阅文档:https://developers.google.com/appengine/docs/java/datastore/?hl=fr
编辑 -> How do I set environment variables from Java?
不过,您最好从启动应用程序的脚本中执行此操作。
另一个(非常简单)的解决方案是创建一个 App Engine Web 应用程序作为后端,并通过 Web 服务访问数据存储区。但我不知道你的用例。
关于java - 设置环境变量以从 java 配置数据存储凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22442247/