You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将AWS Aurora(PostgreSQL)导出至S3时遇超时错误求助

Aurora PostgreSQL导出到S3超时问题解决及完整导出流程

先解决curlCode:28超时错误

出现这个错误是因为Aurora与S3之间的请求超时,按以下步骤排查:

  • VPC端点配置:确认Aurora所在VPC已创建S3网关端点(Gateway Endpoint),且关联的路由表添加了指向该端点的路由(目标为S3前缀列表)。如果没有网关端点,私有子网的Aurora需要通过NAT网关访问公网S3,同时安全组要允许HTTPS(443端口)出站。
  • 调整导出超时参数:默认超时时间可能不足以处理大数据量导出,执行导出命令时显式设置timeout参数(单位秒),比如设置为600(10分钟)。
  • 同区域操作:确保S3桶和Aurora集群在同一AWS区域,跨区域传输会增加延迟,容易触发超时。
  • 拆分导出任务:如果导出的数据量极大,拆分查询(比如按日期分区、分页)分多次导出,避免单次请求超时。

完整导出CSV到S3流程

1. 确认IAM权限配置

Aurora集群关联的IAM角色必须具备S3写入和桶列表权限,示例策略(替换your-bucket-name为实际桶名):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::your-bucket-name",
                "arn:aws:s3:::your-bucket-name/*"
            ]
        }
    ]
}

在RDS控制台的集群配置页面,将该角色添加到关联IAM角色列表中。

2. 启用S3集成扩展

确保集群参数组的shared_preload_libraries参数包含aws_s3,修改后需重启集群生效。然后在数据库中创建扩展:

CREATE EXTENSION IF NOT EXISTS aws_s3;
CREATE EXTENSION IF NOT EXISTS aws_commons;

3. 执行导出命令

使用aws_s3.query_export_to_s3函数导出指定数据为CSV,示例命令:

SELECT aws_s3.query_export_to_s3(
    -- 替换为你的导出查询,可指定字段、过滤条件
    'SELECT id, name, created_at FROM public.users WHERE created_at >= ''2024-01-01''',
    -- 替换为你的S3桶、文件路径、区域
    aws_commons.create_s3_uri('your-bucket-name', 'exports/users_2024.csv', 'us-east-1'),
    -- CSV格式配置:包含表头、逗号分隔符
    options => 'format csv, header true, delimiter '',''',
    -- 设置超时时间为10分钟
    timeout => 600
);

4. 验证导出结果

登录S3控制台,导航到指定的桶路径,检查是否生成了目标CSV文件,可下载预览确认数据完整性。

内容的提问来源于stack exchange,提问作者Khanh Tran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:33:21