aws lambda:错误:运行时退出并出现错误:信号:被杀死

Mat*_*kao 33 python amazon-web-services aws-lambda

我正在尝试从 S3 中提取一个大文件并使用 Pandas 数据帧将其写入 RDS。

我一直在谷歌上搜索这个错误,但在任何地方都没有看到它,有谁知道这个极其通用的声音错误可能意味着什么?我以前遇到过内存问题,但扩展内存消除了该错误。

{
  "errorType": "Runtime.ExitError",
  "errorMessage": "RequestId: 99aa9711-ca93-4201-8b1e-73bf31b762a6 Error: Runtime exited with error: signal: killed"
}
Run Code Online (Sandbox Code Playgroud)

Bir*_*ira 35

执行 lambda 处理图像时遇到相同的错误,在网络中搜索此错误时只有很少的结果。

increased the memory to 512mb 来解决它。

在此处输入图片说明

  • 是的,你会认为他们至少可以提供更有意义的日志。也达到了内存限制。 (4认同)
  • 只是为了扩展这个答案(并回复@Overcode) - 日志的最后一行实际上指定了调用期间使用的最大内存,这可以帮助您诊断内存不足的函数是否实际上是错误的原因: `报告请求 ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 持续时间:37091.65 毫秒 计费持续时间:37092 毫秒 内存大小:1769 MB 最大已用内存:1769 MB` (2认同)

小智 7

它不会在 15 分钟时超时,因为这会记录此错误“任务在 901.02 秒后超时”,而 OP 没有收到该错误。正如其他人所说,他的内存不足了。


Vin*_*t J 5

由于 boto3 并行上传文件,您已达到内存限制。您可以增加 lambda 的内存使用量,但这是作弊……您只会支付更多费用。

每默认情况下,S3 CLI下载文件大于multipart_threshold=8MBmax_concurrency=10并行线程。这意味着它将为您的数据使用 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)
Run Code Online (Sandbox Code Playgroud)

参考:https : //docs.aws.amazon.com/cli/latest/topic/s3-config.html