是否可以将环境变量 "GOOGLE_APPLICATION_CREDENTIALS" 设置为在 Flowground 中上传的 JWT 文件?

Is it possible to set the environment variable "GOOGLE_APPLICATION_CREDENTIALS" to an uploaded JWT File in Flowground?

我尝试在 flowground 连接器实现中使用 "google-api-nodejs-client" (https://github.com/googleapis/google-api-nodejs-client) 和 JSON Web 令牌。是否有可能让环境变量 "GOOGLE_APPLICATION_CREDENTIALS" 指向用户可以上传到流中的可配置 JWT 文件?

图书馆页面的客户端使用示例:

// This method looks for the GCLOUD_PROJECT and GOOGLE_APPLICATION_CREDENTIALS
// environment variables.
const auth = new google.auth.GoogleAuth({
    scopes: ['https://www.googleapis.com/auth/cloud-platform']
});

您可以在 "ENV vars" 页面上为您的连接器设置 flowground 中的环境变量:

让我们看看我是否理解正确你想做什么:

  • 创建一个可以从外部触发的流程,并通过 google-api-nodejs-client 模块访问任何 Google API。
  • 每次触发流程时,您都会 post 一个有效的 JWT 用于访问任何 Google API
  • 您想将 JWT 存储在本地文件系统中;提到的环境变量包含持久 JWT 的路径。

一般来说这是目前有效的方法。
您可以在本地文件系统中创建一个文件:
fs.writeFile(process.env.HOME + '/jwt.token', ...)
Sebastian 已经解释了如何定义所需的环境变量。
请记住,写入和读取 JWT 文件 必须 在流程执行的同一步骤中进行。执行完这一步后,这个文件就没有持久化了。

为什么这只是目前有效的方法?
我假设我们将在不久的将来阻止在本地文件系统中写入。这也会阻止所描述的解决方案。
在我看来,更好的解决方案是使用 flowground.
中构建的 OAuth2 机制 有关此方法的更多信息