AWS Lambda跨区域输出处理

时间:2016-09-01 23:21:52

标签: amazon-web-services aws-lambda

我在3个AWS区域部署了一个lambda函数。我想调用这些函数,这些函数将在S3中的那些区域桶中写入输出文件。

然后我想收集这些文件(来自3个区域桶)以对它们进行进一步处理。

使用AWS服务的最佳方法是什么。

我在下面进行了探讨:

[1]使用SNS触发跨区域lambda作业。但不确定如何从区域桶中获取所有3个输出文件以进行进一步处理。

[2]使用AWS Simple Workflow,但您必须再次在3个区域创建它,并且不支持跨区域活动。

1 个答案:

答案 0 :(得分:3)

您将要在S3存储桶上设置一个事件,以便在项目写入​​时启动Lambda。从:

http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

对于您的用例,较低规模和较简单的选项是将putObject触发到S3存储桶,它会向SNS发布一个事件,该事件将通过CloudWatch事件直接启动Lambda。

对于更大规模,您需要将事件发布到SQS队列,您现在可以直接seen here

另外注意:从你的问题我不认为你知道lambdas可以读/写S3的任何区域。他们不需要在那个地区。但是他们会更快地读/写该地区的资产,并且不会产生带宽费用