Google bigquery 使用BigQuery和cloud sdk时出现错误;当提供用户项目时,必须对用户进行身份验证;

Google bigquery 使用BigQuery和cloud sdk时出现错误;当提供用户项目时,必须对用户进行身份验证;,google-bigquery,airflow,google-cloud-sdk,airflow-operator,Google Bigquery,Airflow,Google Cloud Sdk,Airflow Operator,我尝试在本地运行气流。我的DAG有一个BigQueryOperator,我想使用CloudSDK进行身份验证。我运行“gcloud auth application default login”以获取带有凭据的json文件。我尝试运行以下命令测试我的Dag: 气流测试DAG make_tmp_表2019-02-13我收到错误消息“提供用户项目时必须对用户进行身份验证” 如果我不使用云sdk,而是使用具有BigQuery管理员权限的服务帐户,那么它可以工作,但我需要通过云sdk使用身份验证 是否有

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

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

是否有人知道此错误消息的含义,或者我如何运行airflow并使用云sdk进行身份验证

我使用了以下来源,试图了解如何在本地使用BigQueryOperators运行气流。

要么您没有处理正确的项目,要么您没有执行此任务的权限

我的建议是:

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

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

gcloud auth application-default login
系统将提示您输入链接。按此操作并输入您的帐户。之后,您将看到一个验证码,将其复制并添加到您的gcloud终端


下一步要做的是确保您的帐户具有执行您正在尝试的工作的权限。可能您需要此角色roles/composer.admin,如果此角色不起作用,请从中添加前置角色roles/editor。但是,将该前置角色仅用于测试目的,不建议将其用于生产级项目。

我通过删除在执行以下操作时生成的凭据文件来解决此问题:
gcloud验证应用程序默认登录名
,然后重新创建文件。 然后它成功了。所以我有了正确的方法,只是凭证文件中有一些内容被破坏了

正如@dlbech所说:

大宗报价
这个解决方案对我来说是不够的。我通过删除application\u default\u credentials.json文件中的“quota\u project\u id”:“myproject”行解决了这个问题。我不知道为什么Airflow不喜欢配额项目ID键,但我对它进行了多次测试,这就是问题所在


非常感谢你。它应该按照你的建议工作。看看我对自己问题的回答,这个解决方案对我来说是不够的。我通过删除
application\u default\u credentials.json
文件中的
行“quota\u project\u id”:“myproject”
行解决了这个问题。我不知道为什么Airflow不喜欢quota project ID键,但我对它进行了多次测试,这就是问题所在。@dlebech这方面没有其他搜索结果,但你的技巧也对我有效。