Командная строка GCloud выполняется из-за ошибки другого аккаунта - PullRequest
0 голосов
/ 10 января 2019

У меня есть два аккаунта GCloud, рассмотрим x & y. Я выполнил команду gcloud config set account x, поскольку только учетная запись x имеет доступ к этому конкретному проекту gcloud. Но каждый раз, когда я запускаю локальную задачу, такую ​​как: python -m trainer.task --bucket=bucket-name --output_dir=outputdir --job-dir=./tmp --train_steps=200 Я получаю следующую ошибку:

tensorflow.python.framework.errors_impl.PermissionDeniedError: Error executing an HTTP request: HTTP response code 403 with body '{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "forbidden",
    "message": "y does not have storage.objects.create access to bucket-name."
   }
  ],
  "code": 403,
  "message": "y does not have storage.objects.create access to bucket-name."
 }
}

Мне кажется, что командная строка обращается к учетной записи y, хотя я вошел в учетную запись x. Я дважды проверил, что я вошел в правильную учетную запись с доступом к нужному проекту.

1 Ответ

0 голосов
/ 10 января 2019

Команда gcloud config set, похоже, влияет только на аутентификацию Cloud SDK. Это означает, что несмотря на то, что учетная запись x установлена ​​по умолчанию, вызовы API по-прежнему выполняются с использованием учетных данных приложения по умолчанию.

Если вы хотите войти в систему с учетной записью y, используйте команду gcloud auth login y. Я понимаю, что это ваша локальная среда разработки, поэтому после этого у вас не должно возникнуть проблем.

Также, в Ml-engine рекомендуется использовать команду gcloud ml-engine local train для запуска заданий, чтобы запускать задания локально ( Документация по этому ), вы можете увидеть этот пример о том, как это сделать.

...