将气流与 BigQuery 和云 sdk 结合使用会出现错误“提供用户项目时必须对用户进行身份验证”

Hel*_*tad 6 google-bigquery airflow google-cloud-sdk

我正在尝试在本地运行气流。我的 DAG 有一个 BigQueryOperator,我想使用云 sdk 进行身份验证。我运行“gcloud auth application-default login”以获得带有凭据的 json 文件。我尝试测试我的 Dag 运行命令: airflow test testdag make_tmp_table 2019-02-13我收到错误消息“提供用户项目时必须对用户进行身份验证”

如果我不使用云 sdk,而是使用具有 BigQuery 管理员权限的服务帐户,它可以工作,但我需要通过云 sdk 使用身份验证。

有谁知道这个错误消息是什么意思或者我如何运行airflow并使用云sdk进行身份验证?

我使用以下来源来尝试了解如何在本地使用 BigQueryOperators 运行气流。 https://medium.com/@jbencina/local-testing-with-google-cloud-composer-apache-airflow-75d4213d2893

Met*_*awi 1

要么您没有从事正确的项目,要么您没有执行这项工作的权限。

我的建议是:

通过运行以下命令检查您当前的配置:

gcloud auth list
Run Code Online (Sandbox Code Playgroud)

如果没有运行以下命令来设置它们,请确保您设置了正确的项目和正确的帐户:

gcloud auth application-default login
Run Code Online (Sandbox Code Playgroud)

系统将提示您输入链接。按照它并输入您的帐户。之后您将看到验证码,将其复制并添加到您的 gcloud 终端。

接下来要做的就是确保您的帐户有权执行您正在尝试的工作。可能你需要这个角色Roles/composer.admin如果它不起作用,请从IAM 控制台添加 premitive 角色Roles/editor。但是,仅将该前置角色用于测试目的,不建议将其用于生产级别项目。