调用SecretManagerServiceClient.from_service_account_json()无法加载凭证报错
SecretManagerServiceClient调用from_service_account_json报错的原因及解决
核心问题出在调用方式错误:
from_service_account_json是客户端类的类方法,而非实例方法。你写的secretmanager.SecretManagerServiceClient().from_service_account_json()会先执行客户端实例化操作,而实例化时程序会自动尝试加载默认凭证(此时还未指定服务账号文件),因此触发了DefaultCredentialsError。至于CloudTasksClient和storage.Client能正常运行,大概率是你调用这两个客户端时用了正确的类方法调用形式:比如
storage.Client.from_service_account_json("path/to/key.json"),而非先实例化再调用方法。如果用同样错误的方式调用这两个客户端,也会出现相同的凭证错误。
正确的SecretManagerServiceClient调用示例:
import google.cloud.secretmanager as secretmanager # 直接通过类调用from_service_account_json方法 client = secretmanager.SecretManagerServiceClient.from_service_account_json("path/to/service-account.json")
内容的提问来源于stack exchange,提问作者Zaffer
相关产品推荐
相关产品推荐

