AWS如何重新安排S3 lambda事件?

Mar*_*ano 0 amazon-s3 amazon-web-services aws-lambda

我有一个lambda,它在S3中创建一个对象时运行,在某些情况下我需要重新安排这个lambda,让我们说15分钟后.

当我的lambda第二次运行时,我需要有相同的事件参数,我不介意其他字段而不是桶和路径. event.Records[0].s3.bucket.name event.Records[0].s3.object.key.但很容易有相同的event

我的另一种方法是将这些数据保存在发电机中并使用另一个lambda,每隔15分钟从那里读取一次(糟糕).

但是重新安排我当前的函数并将相同的参数传递给它会更好.像这样的东西:

exports.handler = (event, context, callback) => {
   if(xyz)
      reschedule(15 * 1000 * 60, 'ThisLambdaName', event, context); 
}
Run Code Online (Sandbox Code Playgroud)

像setTimeout这样的东西,但没有AWS为我充电15分钟lol.

das*_*mug 5

您可以将DynamoDB与TTL,DynamoDB Streams和AWS Lambda一起使用.

将数据保存在DynamoDB中并将TTL设置为15分钟后.

当达到项目的TTL时,它将创建一个DynamoDB流,然后您可以使用该流来再次使用原始数据触发原始功能.您很可能必须在处理程序中进行一些更改,以便以不同方式处理来自S3和DynamoDB Streams的事件.

参考文献: