You need to enable JavaScript to run this app. 如何使用Python连接Aurora PostgreSQL Serverless实例
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python连接Aurora PostgreSQL Serverless实例

兼容PostgreSQL的Amazon Aurora连接超时问题解决方案

你收到的Connection timed out报错本质是网络层面无法到达Aurora实例,和你代码中的鉴权逻辑没有直接关联,可按以下顺序排查解决:

  • 确认Aurora实例的网络访问属性
    你解析得到的实例IP为172.31.10.129,属于AWS VPC私有网段,默认不允许公网访问:

检查运行Python代码的设备是否和Aurora实例在同一个VPC内:如果是本地设备运行代码,默认无法直接访问私有VPC内的Aurora实例,需要先通过VPN、VPC对等连接打通网络,或者将Aurora实例配置为公网可访问。
若需要公网访问,进入RDS控制台实例配置页,将「公共可访问性」选项设为「是」,开启后实例会分配公网IP地址。

  • 校验安全组入站规则
    Aurora实例关联的安全组需要放行客户端IP的5432端口入站请求:

进入RDS控制台找到对应Aurora实例,查看关联的安全组配置,添加入站规则:协议选择TCP,端口填5432,源地址填运行代码设备的公网IP(同VPC内访问则填对应设备的私有IP或所属VPC网段)。

  • 检查子网路由配置
    公网访问场景下,需要确认Aurora实例所在子网关联的路由表存在指向互联网网关(IGW)的公网路由,否则公网流量无法正常往返。
  • 修复代码存在的问题
    当前代码有两处需要修正:
  1. SQL执行语句缺少闭合括号,原代码cur.execute("""SELECT now()"""需要修改为cur.execute("""SELECT now()"""),否则后续执行会触发语法错误。
  2. 如果你使用IAM数据库身份认证(即当前通过generate_db_auth_token生成token的方式),需要先给数据库账号postgres授予IAM认证权限,对应SQL语句如下:
CREATE USER postgres WITH LOGIN;
GRANT rds_iam TO postgres;

若暂时不需要IAM认证,可直接用你预设的数据库密码PASS替换psycopg2.connect中的password=token参数,先测试网络连通性再配置鉴权逻辑,降低排查复杂度。

  • 预校验网络连通性
    调试代码前先用工具确认端口连通性,避免反复运行代码排查:
    Windows设备可在cmd运行:telnet assetsintel.cluster-cjeiapuahe69.us-east-1.rds.amazonaws.com 5432
    Linux/Mac设备可运行:nc -zv assetsintel.cluster-cjeiapuahe69.us-east-1.rds.amazonaws.com 5432
    如果返回连通成功再运行Python代码,否则继续排查上述网络配置。

内容的提问来源于stack exchange,提问作者Mobin Al Hassan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 15:00:01