ошибка 403: у вашего клиента нет разрешения на получение URL-адреса в модуле python google cloud

#python #google-cloud-platform #server #google-bigquery

#python #google-cloud-platform #сервер #google-bigquery

Вопрос:

UPTADE: Согласно тому, что сказал мне наш системный эксперт, они устранили проблему следующим образом: IP-адреса версии 6 должны быть отключены в операционных системах, в которых они находятся.

У меня есть файл python на сервере, который планируется запускать каждую неделю. вот так:

 from google.cloud import bigquery
gbq_credentials = create_gc_credentials(settings)
client = bigquery.Client(credentials=gbq_credentials,project=project_id)
df = client.query(sql_query).to_dataframe()

#data processing
....

 

Но файл, который работает каждую неделю, сегодня выдал ошибку:

 Error 403 (Forbidden)!!1
Your client does not have permission to get URL <code>/bigquery/v2/projects/xxxx/jobs</code> from this server.
 

когда я запускал тот же файл на своем локальном компьютере, я не получал никаких ошибок.

Я обновил устаревшие библиотеки python на сервере. Но это не сработало. Также я получаю ту же ошибку для всех файлов, использующих облачный модуль Google.

Чем может быть вызвана эта проблема?

Комментарии:

1. Сейчас у нас точно такая же проблема. Был ли ваш сервер во Франкфурте связан с Contabo hosting?

2. привет, @Sha, я обновил. Проверьте вопрос.

Ответ №1:

Это может быть по многим причинам. Вы можете рассмотреть следующие варианты:

  • Эта ошибка может быть вызвана кешем, и иногда удаление кеша может помочь ее исправить.
  • Возможно, вам просто потребуется перезапустить сервер.
  • Вам не разрешен доступ к ресурсу, или произошла ошибка на стороне сервера.
  • Владельцы веб-сервера неправильно настроили разрешения, и вам отказывают в доступе, когда этого действительно не должно быть.

Или

При использовании BigQuery API вам необходимо создать клиент с учетными данными OAuth для пользователя. Для доступа с помощью API это часто идентификатор учетной записи службы. Когда вы создаете учетную запись службы, эта учетная запись не добавляется автоматически в качестве участника вашего проекта. Чтобы обновить учетные записи пользователей и служб, которые являются участниками вашего проекта, перейдите в свой проект, выберите «Разрешения» на панели навигации и убедитесь, что идентификатор учетной записи пользователя или службы, с помощью которого вы вызываете, является «Читателем» в проекте.

В случае, если речь идет о разрешениях, вы можете ознакомиться с этой документацией об этом.

Комментарии:

1. Наконец проблема решена. Сервер был заблокирован Google.

2. @Clegane Привет, я получаю то же сообщение. Как вы связались с Google? Все варианты помощи Google, которые я вижу, требуют покупки плана поддержки.

3. @Clegane Можете ли вы опубликовать ответ, описывающий, как вы решили эту проблему?

Ответ №2:

Как работает «create_gc_credentials»? Из сообщения об ошибке следует, что учетная запись службы, запущенная на сервере, не имеет разрешения.

Комментарии:

1. Существует функция с именем create_gc_credentials, которую я написал. но проблема не в этом. Тот же код выполняется на моем локальном компьютере без каких-либо ошибок.