我可以使用另一个自定义环境变量名称而不是 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);
如果使用默认创建凭据,则只能使用这个环境变量
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);
为了为我的应用程序启用多个凭据 - 我想为每个凭据使用自定义环境变量。
如何明确设置?
在 GCP docs 我只看到这个默认选项。
编辑:
我使用的库是 Google.Cloud.Storage.V1 和 Google.Apis.Dataflow.v1b3
我用这个成功了
var credentials = GoogleCredential.FromFile(@"c:\certs\sa.json");
var storageClient = StorageClient.Create(credentials);
如果使用默认创建凭据,则只能使用这个环境变量
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);