如何解决Bigtable from_service_account_json() 不工作
我正在尝试使用我在 IAM 上创建的特定服务帐户连接到 Bigtable,并将 JSON 下载到包含我的 Python 代码的文件夹中。我已授予服务帐户 Bigtable 管理员权限。
client = bigtable.Client(project='tunnel-insight-2-0-dev-291100',admin=True)
这有效。
client = bigtable.Client(project='tunnel-insight-2-0-dev-291100',admin=True).from_service_account_json("tunnel-insight-2-0-dev-291100-4494b00c4389.json")
这不起作用。我收到“ValueError:客户端不是管理员客户端。”
有人知道为什么 from_service_account_json 不像其他 Google Client Sdk 那样工作吗?
解决方法
我在我这边复制了您的用例,并且在 Python 3.7.3 中一切都按预期工作。
pip3 install --upgrade google-cloud-bigtable
from google.cloud import bigtable
client = bigtable.Client(project='my-project',admin=True)
client
# <google.cloud.bigtable.client.Client at 0x7f1a2f3687f0>
client = bigtable.Client(project='my-project',admin=True).from_service_account_json("key.json")
client
#<google.cloud.bigtable.client.Client at 0x7f1a2f28ffd0>
#Edit
此代码对您有用吗?
import os
from google.cloud import bigtable
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/home/key.json'
client = bigtable.Client(project='my-project',admin=True)
print client._admin
print client.credentials.service_account_email
这似乎是客户端库的问题。
或者你可以试试:
from google.oauth2 import service_account
from google.cloud import bigtable
key_path = "key.json"
credentials = service_account.Credentials.from_service_account_file(
key_path,scopes=["https://www.googleapis.com/auth/cloud-platform"])
client = bigtable.Client(credentials=credentials,project=credentials.project_id,admin=True)
print (client._admin)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。