如何确定我的Lambda在特定时间内执行了多少次

时间:2019-04-11 10:18:44

标签: amazon-web-services aws-lambda

我有一个Lambda,它在s3放置项触发器上执行。

现在,在s3中,任何上传的lambda对象都将触发。 假设某人在s3中上传了5个文件,因此每次它将对5个文件执行lambda ...

lambda是否有办法对这5个文件仅触发一次...

在完成5次时间触发器/ lambda执行之后,我可以跟踪吗?由于没有文件上传,lambda没有执行多少分钟。

任何帮助都会对我有帮助

2 个答案:

答案 0 :(得分:0)

如果您为创建对象(s3:ObjectCreated)配置了存储桶通知,并且如果未指定过滤器或过滤器满足上载的对象,则每次为每个上载的对象触发lambda。

要查看调用数量,可以在Cloudwatch指标中查看lambda函数的Invocations指标

enter image description here

答案 1 :(得分:0)

您可能想添加一个队列,以处理在S3上处理新文件的请求。

一个相关的可能是Kinesis数据流/ SQS。如果分批处理对您很重要,则Kinesis可能会更好。

请求可以由S3触发的lambda发送,如您所描述的,但是只会将请求发送到队列,然后另一个lambda将对其进行处理。一种更简单的方法是使用将对象放入S3的相同代码(如果可能)发送请求。

这样,您可以统计发送,处理,等待等请求的数量。