首页 > 解决方案 > BigQueryHook 的 Google Cloud Composer 身份验证

问题描述

我正在尝试使用 BigQueryHook,但无法使服务帐户身份验证正常工作。

我已按照 Google 提供的步骤将 JSON 文件复制到环境的 GCS 存储桶中的 data/ 目录中。气流连接详细信息已填写:

JSON 密钥文件路径:/home/airflow/gcs/data/my-key-file.json

Keyfile JSON:JSON 文件的内容

范围:https ://www.googleapis.com/auth/cloud-platform

堆栈驱动程序中的错误:

回溯(最后一次调用):文件“/usr/local/lib/airflow/airflow/models.py”,第 374 行,在 process_file m = imp.load_source(mod_name, filepath) 文件“/opt/python3.6/ lib/python3.6/imp.py",第 172 行,在 load_source 模块 = _load(spec) 文件中"",第 684 行,在 _load 文件中"",第 665 行,在 _load_unlocked 文件中"",第 678 行,在 exec_module 文件中“”,第 219 行,在 _call_with_frames_removed 文件中“/home/airflow/gcs/dags/cloud_sql_to_bq.py”,第 141 行,在 df = get_config() 文件中“/home/airflow/gcs/dags/cloud_sql_to_bq.py”,行71、在get_config bq_client = bigquery.Client(project=bq_hook._get_field("my-project"), credentials=bq_hook._get_credentials()) 文件"/usr/local/lib/airflow/airflow/contrib/hooks/gcp_api_base_hook. py”,第 103 行,在 _get_credentials key_path, scopes=scopes) 文件 "/opt/python3.6/lib/python3.6/site-packages/google/oauth2/service_account.py", 第 209 行, 在 from_service_account_file 文件名中, require=['client_email', 'token_uri']) 文件“/opt/python3.6/lib/python3.6/site-packages/google/auth/_service_account_info.py”,第 71 行,在 from_filename 和 io.open(filename, 'r', encoding ='utf-8') 作为 json_file:) 作为 json_file:) 作为 json_file:FileNotFoundError:[Errno 2] 没有这样的文件或目录:'/home/airflow/gcs/data/my-key-file.json'

知道为什么它看不到 JSON 文件吗?

标签: airflowgoogle-cloud-composer

解决方案


推荐阅读