Как использовать `file_io` Tensorflow в настройках нескольких проектов / нескольких конфигураций? - PullRequest
1 голос
/ 04 апреля 2019

Я являюсь частью нескольких организаций и проектов 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 уважать мою активную конфигурацию?

1 Ответ

2 голосов
/ 08 апреля 2019

Проблема в том, что 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 после переключения.

...