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

CDK BucketDeployment上传大文件触发SIGKILL错误,求解决方案

解决CDK BucketDeployment上传大文件时的SIGKILL错误

问题背景

目标

  • 使用CDK构建运行Python应用的栈,EC2承载应用、RDS PostgreSQL做数据库,所有资源部署在自定义VPC内
  • 将本地PostgreSQL的pg_dump备份文件上传到指定S3桶,已通过CDK创建S3桶并尝试上传

现象

  • 小于1MB的小文件上传正常
  • 160MB开发环境备份文件上传失败,报错如下:

Received response status [FAILED] from custom resource. Message returned: Command '['/opt/awscli/aws', 's3', 'cp', 's3://cdk-<some-hash>.zip', '/tmp/tmpjtgcib_f/<some-hash>']' died with <Signals.SIGKILL: 9>.

❌ SomeStack failed: Error: The stack named SomeStack failed creation, it may need to be manually deleted from the AWS console: ROLLBACK_COMPLETE: Received response status [FAILED] from custom resource. Message returned: Command '['/opt/awscli/aws', 's3', 'cp', 's3://cdk-<some-hash>.zip', '/tmp/tmpjtgcib_f/<some-hash>']' died with <Signals.SIGKILL: 9>.

原因分析

CDK的BucketDeployment底层依赖Lambda函数执行文件上传、解压等操作。你当前配置的Lambda内存仅128MB,处理160MB压缩文件(尤其是解压过程)时内存资源耗尽,导致Lambda进程被系统强制终止(SIGKILL信号)。Lambda的内存配置同时关联CPU和网络带宽,内存越低,处理大文件的效率和能力越弱。

解决方案

1. 提升Lambda内存与临时存储

修改BucketDeployment配置,调高内存限制和临时存储大小,给Lambda足够资源处理大文件:

const deployment = new s3d.BucketDeployment(this, "DatabaseDump", {
  destinationBucket: dataImportBucket,
  extract: true,
  // 调大临时存储到10GB(Lambda最大支持值),应对1GB压缩包的解压需求
  ephemeralStorageSize: cdk.Size.gibibytes(10),
  logRetention: 7,
  // 内存至少调到1024MB,处理1GB文件建议用2048MB
  memoryLimit: 2048,
  retainOnDelete: false,
  sources: [s3d.Source.asset(dataImportPath)],
});

2. 关闭自动提取(如果不需要)

如果pg_dump文件不需要在S3中解压存储,将extract设为false,避免Lambda执行解压操作,大幅降低资源消耗:

extract: false,

3. 替代方案:跳过CDK部署,直接用AWS CLI上传

对于1GB级别的超大文件,不建议通过CDK的BucketDeployment处理(Lambda最大执行时间为15分钟),可以直接在本地用AWS CLI上传:

aws s3 cp ./assets/your-dump.tar.gz s3://ch-data-import-bucket/

这种方式绕开Lambda的资源限制,更适合大文件传输。

4. 拆分大文件(可选)

如果必须通过CDK上传,可将大备份文件拆分为多个小文件,上传后再在S3或后续流程中合并,但会增加额外的处理步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:53:12