下面的最后两行代码是问题所在。正如下面的打印输出所示,我对存储桶中的csv文件有视线,存储桶中的文件是使用键/值约定返回的对象。问题是.read()。总是超时。根据我初次发布此问题时的指针,我已将AWS中的设置更改为函数超时之前的3分钟,我也尝试下载它,但返回None。我想主要的问题是为什么.read()函数要花这么长时间,而download_file命令中缺少什么?文件很小:1KB。任何帮助表示感谢
72.27 / 25.4
打印输出为:
import boto3
import csv
s3 = boto3.resource('s3')
bucket = s3.Bucket('polly-partner')
obj = bucket.Object(key='CyclingLog.csv')
def lambda_handler(event, context):
response = obj.get()
print(response)
key = obj.key
filepath = '/tmp/' + key
print(bucket.download_file(key, filepath))
lines = response['Body'].read()
print(lines)
答案 0 :(得分:1)
错误消息显示:Task timed out after 3.00 seconds
您可以通过以下方法来增加Lambda函数的超时时间:在控制台中打开该函数,转到基本设置部分,然后单击编辑。
虽然您说增加了此超时设置,但实际上是在 3秒后超时,这一事实表明该设置没有更改。
答案 1 :(得分:0)
我知道这是一篇旧帖子,(希望很久以前就解决了!),但我最终来到这里,所以我会分享我的发现。
这些通用的运行时错误消息:
"Error: Runtime exited with error: signal: killed Runtime.ExitError"
...当在 REPORT 行出现类似这样的内容时:
Memory Size: 128 MB Max Memory Used: 129 MB Init Duration: 362.26 ms
...看起来像是内存不足的问题。特别是当“使用的最大内存”>=“内存大小”
据我所知,Lambda 可以而且经常会毫无问题地使用高达 100% 的内存 (Discussed in this post)。但是,当您尝试将数据加载到内存中,或执行内存密集型处理(复制存储在变量中的大型数据集?)时,Python 运行时可能会遇到内存错误并退出。 不幸的是,它没有很好地记录、记录或使用 CloudWatch 指标捕获。
我相信 NodeJS 运行时中的相同错误如下:
"Error: Runtime exited with error: signal: aborted (core dumped)"