java - 设置环境变量以从 java 配置数据存储凭据

标签 java shell google-cloud-datastore

我已经关注了这个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/

相关文章:

java - 使用 Ant 从命令行编译 NetBeans 项目

python - 控制 ndb.Expando 模型属性的索引

google-app-engine - Go 在 Google App Engine Datastore 中有很多关系

google-app-engine - GAE-NDB : Performance of JsonProperty vs StructuredProperty?

Javadoc,Eclipse 中的 "exception not thrown"

java - 使用 JDBC 编写带有绑定(bind)变量的匿名 PL/SQL block

r - linux 命令行中的 knitr

bash - 如何使用 bash 脚本在一个文件中找到行而不在另一个文件中找到行?

java - 为什么 maven-enforcer-plugin 在 travis-ci.org 上与 3.1.1 一起运行时会检测到 maven 3.2.5?

linux - 使用行号调试 shell 脚本