google.api_core.exceptions.PermissionDenied: 403 У вызывающего абонента нет разрешения

Я использовал API AutoMl Vision от gcp и обучил его с помощью собственного набора данных. Я могу получить прогноз данных на консоли GCP, но не могу сохранить прогнозируемый результат. С целью хранения прогнозируемых выходных данных и использования моих локальных данных для прогнозирования я попробовал код Python, который был предоставлен как часть API, который принимает содержимое файла изображения, имя проекта и имя сегмента, но когда я пытаюсь запустить, он показывает мне ошибка: google.api_core.exceptions.PermissionDenied: 403 У вызывающего абонента нет разрешения ошибка облачного SDK вывод


person Srikanth kante    schedule 15.03.2019    source источник
comment
Как вы давали разрешение на хранение?   -  person night-gold    schedule 15.03.2019
comment
Поскольку это первый случай, когда я использую GCP, я не знаю, о чем вы спрашиваете, не могли бы вы дать дополнительную информацию.   -  person Srikanth kante    schedule 19.03.2019
comment
Чтобы писать в ведре, вы должны иметь разрешение на хранение, предоставленное учетной записи, либо учетную запись, используемую вами в коде Python, либо учетную запись службы, используемую в этой конкретной части для загрузки.   -  person night-gold    schedule 19.03.2019
comment
В дополнение к тому, что сказал @adm Для пунктов 5 и 6, мне пришлось вручную добавить созданную мной учетную запись службы в список и назначить роль. Я думаю, что моя версия gcloud более поздняя (243.0.0)   -  person Joshua    schedule 26.04.2019


Ответы (1)


Это просто, во-первых, облачная документация Google не синхронизирована с кодом: выполните следующие действия:

1) Откройте командную строку и запустите это: set GOOGLE_APPLICATION_CREDENTIALS= /path/to/your/credentials.json (лучше всего поместить его в ту же папку, что и Google Cloud sdk

2) gcloud auth login (откроется веб-страница с сообщением, что вы прошли аутентификацию после входа в свою учетную запись google)

3) gcloud config set project YOUR PROJECT_ID

4) gcloud auth activate-service-account YOUR SERVICE [email protected]

5) gcloud projects add-iam-policy-binding YOUR PROJECT_ID --member serviceAccount: (the service account you used in step 4)

6)gcloud projects add-iam-policy-binding YOUR PROJECT_ID --member user: (the email you have affiliated to your gcloud account)

7) Готово.

если у вас возникли проблемы с созданием учетной записи службы, просмотрите это видео: создайте и используйте учетную запись службы

Надеюсь, это поможет :)

источники: у меня была такая же проблема

person adm    schedule 19.03.2019