AWS部署Airflow配置GDrive连接时JSON密钥无效问题求助
Airflow连接Google Drive服务账户"Invalid key JSON"问题排查与解决
核心问题:你的JSON密钥不完整
你提供的服务账户JSON里多个必填字段是空值(project_id、private_key_id、client_email、client_id),且client_x509_cert_url里的....是占位符,这些都会直接导致JSON格式无效。必须使用完整的、未修改的服务账户密钥文件内容,不能留空或保留占位符。
正确配置步骤
获取完整的服务账户密钥
- 回到Google Cloud控制台,重新下载服务账户的JSON密钥文件,确保所有字段都有实际有效值,没有空字段或占位符。
- 打开下载的JSON文件,复制全部内容(包括
private_key里的完整换行内容,不要手动修改转义符)。
Airflow连接配置细节
- 连接类型选择Google Cloud(不要选其他类型)
- 连接ID自定义(比如
google_drive_default) - 在Keyfile JSON字段粘贴刚才复制的完整JSON内容
- (可选)根据需求填写Scope:仅读取文件填
https://www.googleapis.com/auth/drive.readonly;需要读写权限填https://www.googleapis.com/auth/drive - 其他字段保持默认即可
前置依赖检查
- 确保Airflow实例已安装Google Cloud提供者包:
pip install apache-airflow-providers-google - 如果是AWS托管的Airflow(如MWAA),需要在环境配置的
requirements.txt中添加该包,然后重启环境。
- 确保Airflow实例已安装Google Cloud提供者包:
服务账户权限验证
- 把服务账户的
client_email添加到目标Google Drive文件/文件夹的共享列表,赋予至少「查看者」权限,否则即使连接成功也无法访问文件。
- 把服务账户的
格式校验小技巧
如果粘贴后仍报错,可通过本地Python工具验证JSON合法性:
# 将JSON内容保存到temp.json文件,执行以下命令 python -m json.tool temp.json
若输出格式化后的JSON,说明格式合法;若报错,根据提示修复语法问题(比如多余逗号、引号不匹配)。
内容的提问来源于stack exchange,提问作者imatiasmb
相关产品推荐
相关产品推荐

