Colab и Bigquery: бесконечные ошибки 403 ⇐ Python
-
Гость
Colab и Bigquery: бесконечные ошибки 403
Моя цель — получить доступ к данным BigQuery в блокноте Colab, но, несмотря на то, что это кажется довольно простой задачей, я получаю бесконечные ошибки 403.
Я добавил сервисного работника в свой проект и разрешил ему это следующими способами:
Администратор BigQuery Редактор данных BigQuery Средство просмотра данных BigQuery Пользователь BigQuery Зритель редактор В соответствии с Анализатором политик каждый из них применяется к проекту и наборам данных. Я создал ключ API и импортировал его в Colab. Несмотря на это, я получаю ошибку 403 «Отказано в доступе» каждый раз, когда запускаю следующее:
из google.cloud import bigquery из google.oauth2 импортируйте service_account импортировать google.auth учетные данные = service_account.Credentials.from_service_account_file('pathtoapikey.json') project_id = 'мойпроект' клиент = bigquery.Client (учетные данные = учетные данные, проект = project_id) query_job = client.query(""" ВЫБИРАТЬ * ИЗ myproject.mydataset.table_name ЛИМИТ 1000 """) результаты = query_job.result() Ошибка:
Запретная обратная трассировка (последний вызов последним) в () 13 ПРЕДЕЛ 1000 """) 14 ---> 15 результатов = query_job.result() 5 кадров /usr/local/lib/python3.10/dist-packages/google/cloud/bigquery/job/query.py в результате (self, page_size, max_results, retry, timeout, start_index, job_retry) 1518 do_get_result = job_retry(do_get_result) 1519 -> 1520 do_get_result() 1521 г. 1522, кроме исключений.GoogleAPICallError как exc: /usr/local/lib/python3.10/dist-packages/google/api_core/retry.py в retry_wrapped_func(*args, **kwargs) 347 self._initial, self._maximum, multiplier=self._multiplier 348 ) --> 349 return retry_target( 350 мишеней, 351 само._предикат, /usr/local/lib/python3.10/dist-packages/google/api_core/retry.py в retry_target(target, predicate, Sleep_generator, timeout, on_error, **kwargs) 189 для сна в Sleep_generator: 190 попытка: --> 191 вернуть цель() 192 193 # pylint: отключить=широкое-кроме /usr/local/lib/python3.10/dist-packages/google/cloud/bigquery/job/query.py в do_get_result() 1508 self._job_retry = job_retry 1509 -> 1510 super(QueryJob, self).result(retry=retry, timeout=timeout) 1511 1512 # Так как задание уже могло быть «выполнено» (например, получено законченное задание /usr/local/lib/python3.10/dist-packages/google/cloud/bigquery/job/base.py в результате (самостоятельно, повторить, время ожидания) 909 910 kwargs = {}, если повторная попытка DEFAULT_RETRY else {"повторить": повторить} --> 911 return super(_AsyncJob, self).result(timeout=timeout, **kwargs) 912 Служба 913 отменена (самостоятельно): /usr/local/lib/python3.10/dist-packages/google/api_core/future/polling.py в результате (сам, тайм-аут, повтор, опрос) 259 # pylint: отключить=повышение-плохого-типа 260 # Пылинт не распознает, что это допустимо в данном случае. --> 261 поднять само._исключение 262 263 вернуть self._result Запрещено: 403 Доступ запрещен: BigQuery BigQuery: разрешение отклонено при подстановке шаблона файла. Местоположение: США Идентификатор вакансии: Что я пробовал:
[*]
Удаление всех сервисных работников
[*]
Повторное разрешение всего
[*]
Удаление всех разрешений у всех пользователей, кроме владельца, создание
[*]
Новый сервис-воркер, затем добавление разрешений.
[*]
Создание новых ключей API (и обновление в colab/и т. д.)
[*]
Разобрать все и начать с нуля
И т. д. Действительно кажется, что это должен быть довольно простой элемент разрешения, но я, хоть убей, не могу найти недостающее звено. Любая помощь очень ценится.
Моя цель — получить доступ к данным BigQuery в блокноте Colab, но, несмотря на то, что это кажется довольно простой задачей, я получаю бесконечные ошибки 403.
Я добавил сервисного работника в свой проект и разрешил ему это следующими способами:
Администратор BigQuery Редактор данных BigQuery Средство просмотра данных BigQuery Пользователь BigQuery Зритель редактор В соответствии с Анализатором политик каждый из них применяется к проекту и наборам данных. Я создал ключ API и импортировал его в Colab. Несмотря на это, я получаю ошибку 403 «Отказано в доступе» каждый раз, когда запускаю следующее:
из google.cloud import bigquery из google.oauth2 импортируйте service_account импортировать google.auth учетные данные = service_account.Credentials.from_service_account_file('pathtoapikey.json') project_id = 'мойпроект' клиент = bigquery.Client (учетные данные = учетные данные, проект = project_id) query_job = client.query(""" ВЫБИРАТЬ * ИЗ myproject.mydataset.table_name ЛИМИТ 1000 """) результаты = query_job.result() Ошибка:
Запретная обратная трассировка (последний вызов последним) в () 13 ПРЕДЕЛ 1000 """) 14 ---> 15 результатов = query_job.result() 5 кадров /usr/local/lib/python3.10/dist-packages/google/cloud/bigquery/job/query.py в результате (self, page_size, max_results, retry, timeout, start_index, job_retry) 1518 do_get_result = job_retry(do_get_result) 1519 -> 1520 do_get_result() 1521 г. 1522, кроме исключений.GoogleAPICallError как exc: /usr/local/lib/python3.10/dist-packages/google/api_core/retry.py в retry_wrapped_func(*args, **kwargs) 347 self._initial, self._maximum, multiplier=self._multiplier 348 ) --> 349 return retry_target( 350 мишеней, 351 само._предикат, /usr/local/lib/python3.10/dist-packages/google/api_core/retry.py в retry_target(target, predicate, Sleep_generator, timeout, on_error, **kwargs) 189 для сна в Sleep_generator: 190 попытка: --> 191 вернуть цель() 192 193 # pylint: отключить=широкое-кроме /usr/local/lib/python3.10/dist-packages/google/cloud/bigquery/job/query.py в do_get_result() 1508 self._job_retry = job_retry 1509 -> 1510 super(QueryJob, self).result(retry=retry, timeout=timeout) 1511 1512 # Так как задание уже могло быть «выполнено» (например, получено законченное задание /usr/local/lib/python3.10/dist-packages/google/cloud/bigquery/job/base.py в результате (самостоятельно, повторить, время ожидания) 909 910 kwargs = {}, если повторная попытка DEFAULT_RETRY else {"повторить": повторить} --> 911 return super(_AsyncJob, self).result(timeout=timeout, **kwargs) 912 Служба 913 отменена (самостоятельно): /usr/local/lib/python3.10/dist-packages/google/api_core/future/polling.py в результате (сам, тайм-аут, повтор, опрос) 259 # pylint: отключить=повышение-плохого-типа 260 # Пылинт не распознает, что это допустимо в данном случае. --> 261 поднять само._исключение 262 263 вернуть self._result Запрещено: 403 Доступ запрещен: BigQuery BigQuery: разрешение отклонено при подстановке шаблона файла. Местоположение: США Идентификатор вакансии: Что я пробовал:
[*]
Удаление всех сервисных работников
[*]
Повторное разрешение всего
[*]
Удаление всех разрешений у всех пользователей, кроме владельца, создание
[*]
Новый сервис-воркер, затем добавление разрешений.
[*]
Создание новых ключей API (и обновление в colab/и т. д.)
[*]
Разобрать все и начать с нуля
И т. д. Действительно кажется, что это должен быть довольно простой элемент разрешения, но я, хоть убей, не могу найти недостающее звено. Любая помощь очень ценится.