Airflow连接GCP CloudSQL Postgres报__init__缺失api_version参数如何修复
问题原因
该报错本质是配置Airflow PostgreSQL连接时,选择了需要api_version参数的错误连接类型,绝大多数场景是误将PostgreSQL连接的Conn Type选为Kubernetes,或是apache-airflow-providers-postgres插件版本与当前Airflow核心版本不兼容,触发参数校验异常。
修复步骤
- 核对连接类型配置
打开Airflow WebUI的连接管理页,找到你配置的CloudSQL PostgreSQL连接,确认Conn Type必须选择Postgres,不要误选Kubernetes、Google Cloud等其他类型。 - 核对连接参数填写
标准CloudSQL PostgreSQL连接参数配置如下:通过Cloud SQL Auth Proxy连接的场景:
- Host:填本地代理监听地址,默认是
127.0.0.1 - Schema:填目标数据库名
- Login:填数据库用户名
- Password:填数据库密码
- Port:填代理映射的端口,默认是
5432
直接通过公网IP连接的场景:
- Host:填CloudSQL实例的公网IP
- 其余参数同上,需提前在CloudSQL实例的授权网络列表中添加你本地的出口IP
- Host:填本地代理监听地址,默认是
- 校验依赖版本兼容性
如果你是通过Docker Compose部署的Airflow,在docker-compose.yaml的x-airflow-common环境变量配置段,或是自定义镜像的Dockerfile中,确认apache-airflow-providers-postgres版本与Airflow核心版本匹配:
比如Airflow 2.6+版本适配apache-airflow-providers-postgres>=5.5.0,可以在镜像构建阶段执行以下命令安装匹配版本:pip install apache-airflow-providers-postgres==5.5.2 - 重启服务生效
所有配置修改完成后,执行以下命令重启所有Airflow服务:docker compose down -v && docker compose up -d
报错截图

内容的提问来源于stack exchange,提问作者Hououin Kyouma
相关产品推荐
相关产品推荐

