如何获取运行Java应用程序的GAE项目的ID?

马修·奥尔登(Mathew Alden)

我有一个在Google App Engine中运行的Java应用程序。我需要以编程方式获取在Java中作为其一部分运行的项目的ID。

这个问题说明了如何在Python中实现我的目标,但这当然不是Java。

本文档说,我可以简单地调用ApiProxy.getCurrentEnvironment().getAppId(),但是此方法仅在我的应用中返回null。

这个问题说明了如何通过HTTP请求获取项目ID,但是我想知道是否有更好的方法可以在Java中执行而无需手动构造HTTP请求?

编辑:Luyi的答案似乎对大多数人都有效,但对我来说返回null。

蒂埃里·法尔沃(Thierry Falvo)

您可以使用com.google.cloud.ServiceOptions帮助程序获取默认的项目ID。它将为您提供一些抽象内容,以便能够project-id根据您的上下文和当前的应用程序引擎运行时进行检索

例如,Java11运行时不支持某些旧的api。并获得project-id通过由HTTP请求的元数据是一个通用的解决方案。

在这种情况下,这ServiceOptions.getDefaultProjectId是保持代码通用和简单的好方法。

Spring Cloud GCP正在幕后使用此方法进行检索project-id

导入google-cloud-core依赖项:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-core</artifactId>
  <version>1.94.0</version>
</dependency>

然后使用ServiceOptions

import com.google.cloud.ServiceOptions;
...

String projectId = ServiceOptions.getDefaultProjectId();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使Java项目作为应用程序运行?

如何在使用IIS运行的Web应用程序中动态找到项目的输出目录?

如何找到运行我的 Java 应用程序的进程 ID

缺少GAE对现有Google API项目的应用程序

如何通过java中的应用程序ID获取Spark应用程序句柄

Java / Selenium 应用程序 - 如何获取被测应用程序的会话 ID?

如何获取Heroku应用程序ID?

在GAE中映射项目名称和应用程序ID

如何从将应用程序注册到Systemd的Java Gradle项目中获取Deb包

如何在应用程序中获取项目 URL?

获取应用程序ID

我如何获取在灵活环境中运行的 Java 应用程序的堆转储

如何在运行时获取Java应用程序的真实路径?

如何获取正在运行的应用程序的Java调用堆栈

如何从 Java 应用程序获取 Linux 中正在运行的进程的准确列表?

如何从 HashiCorp Nomad 运行的 Java 应用程序中获取堆转储?

更新Robolectric 2.4:在Eclipse中获取库项目的应用程序标签错误

在QTreeView / Model应用程序中获取给定项目的索引

如何获取跨组织运行的所有应用程序?

如何仅在我的应用程序中获取运行线程

如何获取在Apache Tomcat上运行的应用程序的maxConnections

Xcode:从同一工作区中的框架项目动态获取应用程序项目中框架项目的更新

Windows Store应用程序如何绑定应用程序栏项目的可见性?

如何让 Java 程序从 iOS 应用程序中获取输入

在Java应用程序中获取内部版本ID

在 Java Spark 应用程序中获取 EMR 集群 ID

如何获取yarn-session的应用程序ID

如何获取Spring Boot应用程序的进程ID

发布应用程序前如何获取iTunes Connect ID?