При использовании воздушного потока с BigQuery и облачным SDK возникает ошибка. Пользователь должен пройти аутентификацию при предоставлении пользовательского проекта.

Я пытаюсь запустить воздушный поток локально. В моей группе DAG есть BigQueryOperator, и я хочу использовать облачный SDK для аутентификации. Я запускаю "gcloud auth application-default login", чтобы получить файл json с учетными данными. Я пытаюсь проверить свой Dag, выполнив команду: airflow test testdag make_tmp_table 2019-02-13 Я получаю сообщение об ошибке «Пользователь должен быть аутентифицирован, когда предоставляется пользовательский проект»

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

Кто-нибудь знает, что означает это сообщение об ошибке или как я могу запустить воздушный поток и использовать облачный SDK для аутентификации?

Я использовал следующий источник, чтобы попытаться понять, как я могу запустить воздушный поток с помощью BigQueryOperators локально. https://medium.com/@jbencina/local-testing-with-google-cloud-composer-apache-airflow-75d4213d2893.


person Helga Holmestad    schedule 22.01.2020    source источник


Ответы (3)


либо вы не работаете над правильным проектом, либо у вас нет прав для выполнения этой работы.

я предлагаю:

проверьте свою текущую конфигурацию, запустив:

gcloud auth list

убедитесь, что у вас есть правильный проект и правильная учетная запись, если вы не запустите эти команды, чтобы установить их:

gcloud auth application-default login

вам будет предложено ввести ссылку. следуйте ему и войдите в свой аккаунт. после этого вы увидите проверочный код, скопируйте его и добавьте в свой терминал gcloud.

Следующее, что нужно сделать, - убедиться, что у вашей учетной записи есть разрешения на выполнение той работы, которую вы пытаетесь сделать. возможно, вам понадобится эта роль roles / composer.admin, если она не сработала, добавьте основную роль роли / редактор из вашего консоль IAM. Но используйте эту предварительную роль только для целей тестирования, и ее не рекомендуется использовать для проекта производственного уровня.

person Methkal Khalawi    schedule 23.01.2020
comment
Большое тебе спасибо. Он должен работать так, как вы предложили. Смотрите мой ответ на мой собственный вопрос - person Helga Holmestad; 23.01.2020

как сказал @dlbech:

Blockquote Мне этого решения показалось мало. Я решил это, удалив строку quota_project_id: myproject в файле application_default_credentials.json. Я не знаю, почему Airflow не нравится ключ идентификатора проекта квоты, но я тестировал его несколько раз, и это была проблема

person Alberto C    schedule 03.02.2021

Я решил это, удалив файл учетных данных, созданный, когда я сделал: gcloud auth application-default login, а затем воссоздал файл. Тогда это сработало. Так что у меня был правильный метод, просто что-то было сломано в файле учетных данных.

person Helga Holmestad    schedule 23.01.2020
comment
Мне этого решения было мало. Решил, удалив строчку "quota_project_id": "myproject" в application_default_credentials.json файле. Я не знаю, почему Airflow не нравится ключ идентификатора проекта квоты, но я тестировал его несколько раз, и это была проблема. - person dlebech; 27.05.2020
comment
@dlebech, по этому поводу буквально нет других результатов поиска, но ваш трюк тоже сработал для меня. - person kalu; 04.01.2021