Проблема с разрешениями Google Cloud для Bigquery, Google Cloud Build и облачных функций Google с Pytest - PullRequest
0 голосов
/ 28 апреля 2020

Следующий код прекрасно работает в Google Cloudshell с помощью модульного теста pytest, а также при вырезании и вставке в функции Google Cloud, но не при попытке использовать его в модульном тесте с Pytest и Cloudbuild.

import base64
from google.cloud import bigquery
def Example_pubsub(event, context):
   pubsub_message = base64.b64decode(event['data']).decode('utf-8')
   data_pubsub = pubsub_message.strip().split(',')

   project_id = data_pubsub[0]
   table_name = data_pubsub[1]

   bqclient = bigquery.Client(project=project_id)

   SQL = "SELECT date,symbol FROM " + table_name +\
       " ORDER BY date DESC LIMIT 20000"

   df_raw = bqclient.query(SQL).to_dataframe()

Я получаю эту ошибку:

поднять exceptions.from_http_response (ответ) Шаг № 3: E google.api_core.exceptions.Forbidden: 403 POST https://bigquery.googleapis.com/bigquery/v2/projects/example-274915/jobs: доступ запрещен : Пример проекта-274915: у пользователя нет разрешения bigquery.jobs.create в примере проекта-274915.

В IAM я уже убедился, что учетная запись службы cloudbuild (xxxxx@cloudbuild.gserviceaccount.com) имеет разрешения для BigQuery. Я даже дошел до того, что безуспешно дал статус владельца учетной записи cloudbuild для всех больших запросов. Кто-нибудь знает, что я делаю не так? Я также использую репозиторий исходного кода Google для этого. Я также проверил с помощью средства устранения неполадок политики, и разрешения были в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...