我正在尝试从S3中提取一个大文件,并使用pandas数据帧将其写入RDS。
我一直在谷歌上搜索这个错误,但在任何地方都没有看到它,有人知道这个极其通用的声音错误可能是什么意思吗?我以前遇到过内存问题,但扩展内存消除了这个错误。
{
"errorType": "Runtime.ExitError",
"errorMessage": "RequestId: 99aa9711-ca93-4201-8b1e-73bf31b762a6 Error: Runtime exited with error: signal: killed"
}
发布于 2020-02-26 18:02:02
当执行lambda来处理图像时,得到了同样的错误,当在web上搜索这个错误时,只有很少的结果。
increased the memory to 512mb
来解决这个问题。
发布于 2021-01-05 00:13:06
由于文件的boto3并行上载,您正在达到内存限制。您可以增加lambda的内存使用量,但这是欺骗...你只会付更多钱。
默认情况下,S3 cli使用max_concurrency=10
并行线程下载比multipart_threshold=8MB
大的文件。这意味着它将使用80MB的数据,外加线程开销。
你可以简化为max_concurrency=2
,例如,它将使用16MB,它应该适合你的lambda内存。
请注意,这可能会略微降低您的下载性能。
import boto3
from boto3.s3.transfer import TransferConfig
config = TransferConfig(max_concurrency=2)
s3 = boto3.client('s3')
s3.download_file('BUCKET_NAME', 'OBJECT_NAME', 'FILE_NAME', Config=config)
参考:https://docs.aws.amazon.com/cli/latest/topic/s3-config.html
发布于 2020-02-26 18:19:37
首先,aws-lambda
不打算执行长时间的繁重操作,比如从S3中拉出大文件并将其写入RDS。
此过程可能会花费太多时间,具体取决于文件大小和数据。-lambda的最大执行时间为15分钟。因此,您在lambda中执行的任何任务都应该在您提供的时间限制内完成(最多15分钟)。
在lambda中进行大量繁重的处理时,您可能会遇到内存不足错误、时间不足错误,或者有时需要扩展您的处理能力。
另一种处理如此庞大和繁重的方法是使用aws,这是AWS Glue
托管的ETL
服务。
https://stackoverflow.com/questions/59057934
复制相似问题