如何传递 GOOGLE_APPLICATION_CREDENTIALS 中的内容而不是文件路径?

Posted

技术标签:

【中文标题】如何传递 GOOGLE_APPLICATION_CREDENTIALS 中的内容而不是文件路径?【英文标题】:How to pass contents in GOOGLE_APPLICATION_CREDENTIALS rather than file path? 【发布时间】:2020-12-08 09:04:53 【问题描述】:

有什么方法可以使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量并将文件的内容而不是文件路径传递给它,实际上我想从我的 NodeJs 应用程序中使用服务帐户,但我的条件是我不能通过文件,但我可以通过我的 NodeJS 代码传递它的内容。

【问题讨论】:

你希望你的 NodeJS 代码在 Pod 中作为 GOOGLE_APPLICATION_CREDENTIALS 环境变量的内容可用吗? 是的,我想在 GOOGLE_APPLICATION_CREDENTIALS 中使用我的 NodeJS 代码生成的内容 这个内容是在哪里生成的?在 Pod 启动之前是否可用? 【参考方案1】:

如果您使用 GKE,则应使用工作负载身份,而不是传入服务帐号凭据。这是更安全和首选的方式。

在 GKE/GCP 之外,您可以构建自定义身份验证客户端:

const creds = JSON.parse(process.env.GOOGLE_CREDS);
this.auth = new GoogleAuth(
  scopes: [...],
  credentials: creds,
);

【讨论】:

以上是关于如何传递 GOOGLE_APPLICATION_CREDENTIALS 中的内容而不是文件路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何在传递依赖中排除传递依赖?

C#中的枚举类型如何传递参数呢?

QT中两个类之间如何进行值传递?如何一个类里面定义了一个数组a[270],怎么传递给另一个类?

如何在两页面之间传递JSON数据

HttpURLConnection如何传递参数?

Android如何在Activity和Service之间传递数据