将气流与 BigQuery 和云 sdk 结合使用会产生错误"User must be authenticated when user project is provided"



我正在尝试在本地运行气流。我的 DAG 有一个 BigQueryOperator,我想使用云 sdk 进行身份验证。我运行"gcloud auth 应用程序默认登录"以获取带有凭据的 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

我通过删除时生成的凭据文件来解决它:gcloud auth application-default login,然后重新创建文件。 然后它奏效了。所以我有正确的方法,只是凭据文件中的某些内容被破坏了。

要么你没有在做正确的项目,要么你没有权限做这项工作。

我的建议是:

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

gcloud auth list

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

gcloud auth application-default login

系统将提示您输入链接。 关注它并输入您的帐户。 之后,您将看到一个验证码,复制它并将其添加到您的 GCLOUD 终端。

接下来要做的是确保您的帐户有权执行您正在尝试的工作。 可能需要此角色roles/composer.admin如果它不起作用,请从您的 IAM 控制台添加首要角色角色/编辑器。但是,仅将该主要角色用于测试目的,将其用于生产级别项目是不明智的。

正如@dlbech所说:

块引用 这个解决方案对我来说还不够。我通过删除 application_default_credentials.json 文件中的"quota_project_id":"myproject"行解决了它。我不知道为什么Airflow不喜欢配额项目ID键,但是我测试了多次,这就是问题所在

相关内容

最新更新