当前位置:  开发笔记 > 运维 > 正文

AWS Lambda执行持续时间随机增加并导致超时

如何解决《AWSLambda执行持续时间随机增加并导致超时》经验,为你挑选了0个好方法。

我正在构建一个无服务器的Web跟踪系统,该系统使用AWS API Gateway为其跟踪像素提供服务,每当跟踪请求到达时,它就会调用Lambda函数,以将跟踪事件写入Kinesis流。

Lambda函数本身并没有做任何花哨的事情。它只是接受传入的事件(它自己的参数)并将其写入流中。本质上,它只是:

import boto3
kinesis_client = boto3.client("kinesis")

kinesis_stream = "my_stream_name"

def return_tracking_pixel(event, context):
    ...
    new_record = ...(event)
    kinesis_client.put_record(
        StreamName=kinesis_stream,
        Data=new_record,
        PartitionKey=...
    )
    return ...

有时,我会在Lambda执行期间遇到一个怪异的高峰,这导致我的某些Lambda函数调用超时,并且跟踪请求丢失了。

这是在受影响的时间段内Lambda函数的1分钟调用计数的图表:

在20:50和23:10之间,我突然看到许多调用错误(错误计数为1分钟):

这显然是由Lambda执行超时(每1分钟间隔中的最长持续时间)引起的:

我的Kinesis流(数据输入,放置记录数,put_record成功计数等,都看起来很正常)和我的API GW(调用数均与API GW调用数相对应)都没有任何异常在API GW的限制内)。

是什么原因导致Lambda函数执行持续时间突然(看似随机发生)?

编辑:既不限制lambda函数,这是我的第一个想法。

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有