airflow - 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 文件吗?
解决方案
推荐阅读
- javascript - 使用 fs.writeFile 将 javascript 代码写入 js
- python-3.x - 如何设置字符串的小数位?
- javascript - 每次单击元素时如何使转换工作
- javascript - 在异步调用完成后渲染 React 函数组件的一部分
- javascript - 在 CSS 中创建一个灵活的网格并对其执行操作?
- flutter - 如何在 Flutter Web 中保存到 Web 本地存储
- asp.net-core - 为什么剃须刀用空的动作形成形状?
- python - 在 Heroku 上连接到 mongoDB 时出现错误:“localhost:27017: [Errno 111] Connection denied”,但在我的计算机上工作正常
- telegram - 无法使用 Fift 创建 ton 钱包?
- react-native - 不能在 flatlist renderItem 中使用删除功能