如何在 multi-project/multi-configuration 设置中使用 Tensorflow 的 `file_io`?
How to use Tensorflow's `file_io` in multi-project/multi-configuration setting?
我参与了多个 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
遵守我的活动配置?
问题是 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
再次手动更新。
我参与了多个 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
遵守我的活动配置?
问题是 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
再次手动更新。