长时间轮询AWS S3以检查项目是否存在?

时间:2019-03-06 20:52:10

标签: python-3.x amazon-web-services amazon-s3 aws-lambda boto3

这里的上下文很简单,有一个lambda(lambda1),它可以异步创建文件,然后将其上传到S3。

然后,另一个lambda(lambda2)接收即将存在的文件名,并需要继续检查S3,直到该文件存在。

我不认为S3触发器会起作用,因为lambda2是由客户端请求调用的

1)我需要为lambda和S3之间的这种请求付费吗?我将对其进行轮询直到对象存在

2)我还能通过什么其他方式实现此目的而不产生费用?

3)我应使用哪种方法检查S3中是否存在文件? (只是尝试获取它并检查状态码?)

2 个答案:

答案 0 :(得分:1)

这似乎应该在Lambda上使用S3 objectCreated触发器。这样,无论何时创建对象,它都会自动使用文件元数据触发Lambda函数。

See here for information on configuring an S3 event trigger

答案 1 :(得分:0)

让我确保我理解正确。

  1. 客户致电Lambda1。 Lambda1创建异步文件并上传到S3 一旦lambda1开始异步处理,对lambda one的调用就会返回。
  2. 客户端调用lambda2,以从s3中提取lambda1将要推送到那里的文件。

为什么不只等待Lambda一个创建文件并将其返回给客户端?否则,这将是昂贵的文件交换。