Авторизация Google App Engine для Google BigQuery — несколько проектов

Я запускаю несколько проектов, использующих один и тот же исходный код (python) в GAE. В настоящее время я пытаюсь включить функциональность BigQuery в эти проекты. Я включил BigQuery API во всех проектах, успешно импортировал некоторые данные в BigQuery из GCS с помощью новой консоли разработчика. Я могу делать запросы из приложения GAE, используя AppAssertionCredentials из некоторых проектов, но получаю сообщение 403 "Доступ не настроен. API (BigQuery API) не включен для вашего проекта. Для обновления используйте консоль разработчиков Google. ваша конфигурация." ошибка для других.

tl;dr AppAssertionCredentials с BigQuery не работает для некоторых проектов, но не для других (тот же исходный код)

Во всех проектах включен API BigQuery и выставление счетов. Я выполнил все шаги из приложения Google. Авторизация Engine для Google BigQuery

Единственная разница между проектами заключается в том, как они были созданы.

  1. Original project:
  2. Second project:
  3. Third project (cloned from poject_A):

Третий проект project_C был создан с использованием функции клонирования старой консоли appengine, поэтому он использует тот же адрес электронной почты сервисного аккаунта. Это проект, для которого AppAssertionCredentials не работает при попытке запроса BigQuery (хотя все работает нормально при аутентификации в GCS с теми же учетными данными).

Я добавил [email protected] в список разрешений project_C с разрешениями «Изменить» - это не помогло. Код обнаружения службы:

from googleapiclient.discovery import build
from oauth2client.appengine import AppAssertionCredentials

credentials = AppAssertionCredentials('https://www.googleapis.com/auth/bigquery')
return build('bigquery', 'v2', credentials=credentials)

Есть ли обходной путь этой проблемы или, может быть, что-то еще, что мне нужно проверить? Я действительно хотел бы избежать использования любого другого метода авторизации, кроме AppAssertionCredentials.


person witsol    schedule 06.08.2015    source источник
comment
почему бы не перейти в новую консоль разработчиков Project_C и не добавить «[email protected]» в качестве нового участника?   -  person Sriram    schedule 06.08.2015
comment
Спасибо, но я пробовал - вместо добавления учетной записи пишет, что приглашение отправлено. Ждем ответа, такой учетной записи, вероятно, не существует.   -  person witsol    schedule 06.08.2015
comment
stackoverflow.com/questions/24327924/ Как указано здесь, попробуйте отключить API из консоли и снова включить. Может помочь   -  person Sriram    schedule 07.08.2015
comment
Спасибо, я столкнулся с аналогичной проблемой с API GCS некоторое время назад, и это решение тогда помогло, но не помогло с API BigQuery.   -  person witsol    schedule 07.08.2015
comment
Поскольку вы клонировали его, используя функцию старой консоли, может быть, зайдя в облачную интеграцию (внизу приложения-›настройки) и попытавшись нажать на нее, он воссоздаст учетную запись службы project_C?   -  person Patrice    schedule 11.08.2015
comment
@Patrice Это было сделано некоторое время назад для этого конкретного проекта. Все мои проекты уже доступны в новой консоли. Но я вижу, что для Project_B по-прежнему включена кнопка «Создать» — нажатие на нее показывает ошибку «Произошла ошибка при создании проекта». Пожалуйста, повторите попытку. На этом этапе я упомянул первоначальную проблему как дефект кода GAE, . google.com/p/googleappengine/issues/detail?id=12239   -  person witsol    schedule 12.08.2015
comment
@witsol, возможно, это действительно лучший способ.   -  person Patrice    schedule 12.08.2015
comment
Похоже, что проблема решилась сама собой без дальнейших действий с нашей стороны (помимо факта постановки вопроса в GAE)   -  person witsol    schedule 17.08.2015