【发布时间】:2021-11-05 14:12:17
【问题描述】:
我正在使用 Java SDK for google cloud scheduler 创建一些计划作业。这是已作为另一个问题的一部分发布的应用程序代码的link。该应用程序基本上创建了一个 Cloud Scheduler 作业,每次运行时都会触发 VertexAI 上的自定义训练作业。现在,调度程序对 VertexAI 的调用以创建自定义作业已使用服务帐户进行身份验证。我的问题是关于创建 Cloud Scheduler 作业本身的应用程序代码的身份验证。我已将此应用程序设置为 maven 项目,并创建了一个可执行 jar。该应用程序本身在我的本地工作站上运行。以下是我的观点/问题:
- 当我创建一个 docker 映像并将这个 jar 和服务帐户密钥复制到映像中,然后将 GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为指向容器内的密钥时,应用程序运行正常并且 Cloud Scheduler 作业得到已创建。
- 当我执行与上述相同的操作时,除了我只是在 powershell 中执行 jar(使用指向服务帐户密钥的 GOOGLE_APPLICATION_CREDENTIALS 环境变量),权限被拒绝。
- 与 2 相同,只是我只是使用 eclipse 的“运行应用程序”按钮运行应用程序。
如何在无需在 docker 容器中运行的情况下进行身份验证以运行应用程序。有没有一种方法可以在不使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量的情况下进行身份验证,即直接在应用程序代码本身中进行身份验证。示例代码/示例的链接会有所帮助。
编辑: 对于第 2 点,问题是环境变量名称中的拼写错误。对于第3点,您可以直接在eclipse中设置环境变量,如@RJC的答案中所述。
【问题讨论】:
-
你的问题不够精确。您是否尝试在工作站上运行您的代码?有或没有容器?使用您自己的用户凭据或服务帐户凭据(通过服务帐户密钥文件)?
标签: java google-cloud-platform google-authentication google-cloud-scheduler