有一个Lambda,比如我的Lambda名称是-XXYZ,它有一个s3文件上传触发器。现在假设我上传了多个文件,比如大约100个,lambda执行就开始了。有没有什么方法可以跟踪lambda是否正在运行或是否已经处理了所有文件?
原因是,一旦lambda完成了对所有文件的处理,我就想触发一个step函数,所以为了触发我的step函数,我只想在lambda(XYZ(处理完所有文件后才触发。仅供参考:目前还没有办法跟踪上传了多少文件
我认为在lambda完成任务后运行一个步骤函数状态机而没有一个完美的逻辑事件不是一个好的设计。
例如,因为您可以接收由lambda完成的一堆文件(比如100(,然后使用Cloudwatch报警,一旦我们完成了自定义度量的100个值,或者检查DynamoDb中的值或自定义文件夹中的对象数,就会触发作业步进函数,同时您收到另一个延迟+5秒的文件来完成101,在这种情况下,您可能会错过此文件。
如果您没有特殊事件或完成文件的条件,那么您可以使用时间调度,并使用Cloudwatch事件(已调度事件(触发Step功能,如每15分钟一次,检查是否有工作,如果没有,则退出作业。
否则,要么将lambda(文件进程(作为步骤包含在步骤函数中,要么更改设计。