是否有任何机制可以在代码库中使用多个 GOOGLE_APPLICATION_CREDENTIALS?

Dee*_*mar 6 dialogflow-es

我们在一个谷歌服务帐户中有多个项目,每个项目都有单独的GOOGLE_APPLICATION_CREDENTIALSjson 文件。根据基于语言环境的要求,projectID我们必须使用相关的凭证 json 文件。

尝试通过环境变量加载,但只能接受一个文件路径,

设置环境变量

GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json"
Run Code Online (Sandbox Code Playgroud)

如果请求来自该服务帐户中的任何项目,则期望身份验证成功。

sid*_*491 1

您需要直接从 json 文件设置凭据,而不是在环境变量中设置它。

from google.oauth2 import service_account
SERVICE_ACCOUNT_FILE = "/home/user/Downloads/[FILE_NAME].json"
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE)
project_id = "project_id"
session_id = "session_id"
session_client = dialogflow.SessionsClient(credentials=credentials)
session = session_client.session_path(project_id, session_id)
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。