如何传递 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 中的内容而不是文件路径?的主要内容,如果未能解决你的问题,请参考以下文章