我是多个GCP组织和项目的成员。当我运行gcloud config configurations list
时,我得到:
NAME IS_ACTIVE ACCOUNT PROJECT
default False knub@org_1.com org1
project_b True knub@org_2.com org2
现在我正在尝试运行
from tensorflow.python.lib.io import file_io
file_io.file_exists("gs://bucket_from_project_b/test.txt")
但是我得到了错误
knub@org_1.com does not have storage.objects.get access to
gs://bucket_from_project_b/test.txt`
即使活动项目为project_b
,也会发生这种情况。其他所有事物,例如gcloud
和gsutil
,都可以正常工作并遵守当前处于活动状态的配置。
如何使file_io
尊重我的活动配置?
答案 0 :(得分:2)
问题是file_io
使用~/.config/gcloud/application_default_credentials.json
中的应用程序凭据而不是~/.config/gcloud/active_config
中的活动配置。
此外,application_default_credentials.json
不会在项目之间切换(通过gcloud config configurations activate default
)时更新,而是必须在切换后通过调用gcloud auth application-default login
来再次手动手动更新。