我在3个AWS区域部署了一个lambda函数。我想调用这些函数,这些函数将在S3中的那些区域桶中写入输出文件。
然后我想收集这些文件(来自3个区域桶)以对它们进行进一步处理。
使用AWS服务的最佳方法是什么。
我在下面进行了探讨:
[1]使用SNS触发跨区域lambda作业。但不确定如何从区域桶中获取所有3个输出文件以进行进一步处理。
[2]使用AWS Simple Workflow,但您必须再次在3个区域创建它,并且不支持跨区域活动。
答案 0 :(得分:3)
您将要在S3存储桶上设置一个事件,以便在项目写入时启动Lambda。从:
http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
对于您的用例,较低规模和较简单的选项是将putObject触发到S3存储桶,它会向SNS发布一个事件,该事件将通过CloudWatch事件直接启动Lambda。
对于更大规模,您需要将事件发布到SQS队列,您现在可以直接seen here。
另外注意:从你的问题我不认为你知道lambdas可以读/写S3的任何区域。他们不需要在那个地区。但是他们会更快地读/写该地区的资产,并且不会产生带宽费用