#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, которую я написал. но проблема не в этом. Тот же код выполняется на моем локальном компьютере без каких-либо ошибок.