我可以使用另一个自定义环境变量名称而不是 GOOGLE_APPLICATION_CREDENTIALS 吗?

can I use another custom environment variable name instead of GOOGLE_APPLICATION_CREDENTIALS?

为了为我的应用程序启用多个凭据 - 我想为每个凭据使用自定义环境变量。

如何明确设置?

GCP docs 我只看到这个默认选项。

编辑:

我使用的库是 Google.Cloud.Storage.V1 和 Google.Apis.Dataflow.v1b3

我用这个成功了

var credentials = GoogleCredential.FromFile(@"c:\certs\sa.json");
var storageClient = StorageClient.Create(credentials);

如果使用默认创建凭据,则只能使用这个环境变量

(example in python)

import google.auth

credentials, project_id = google.auth.default()

现在,考虑一下您在 GOOGLE_APPLICATION_CREDENTIALS 环境变量中输入的值。它只是服务帐户密钥文件的路径。所以,you can do that, which is equivalent to the previous command

import google.auth

credentials = service_account.Credentials.from_service_account_file(os.getenv('GOOGLE_APPLICATION_CREDENTIALS'))

因此,您可以使用所需的环境变量名称,并通过传递正确文件的路径来创建显式凭据!

C# 示例:

var credentials = GoogleCredential.FromFile(@"c:\certs\trigger-sa.json");
var storageClient = StorageClient.Create(credentials);