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.
您可以将DynamoDB与TTL,DynamoDB Streams和AWS Lambda一起使用.
将数据保存在DynamoDB中并将TTL设置为15分钟后.
当达到项目的TTL时,它将创建一个DynamoDB流,然后您可以使用该流来再次使用原始数据触发原始功能.您很可能必须在处理程序中进行一些更改,以便以不同方式处理来自S3和DynamoDB Streams的事件.
参考文献:
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |