【问题标题】:Amazon web services - SQS - Lambda亚马逊网络服务 - SQS - Lambda
【发布时间】:2017-11-29 09:57:45
【问题描述】:

目前我有一个由 S3 PUT 事件触发的 lambda 函数,该 lambda 使用 S3 存储桶/密钥的名称创建一个 SQS 消息。这个 lambda 用所有新的 S3 密钥填满队列。

S3 存储桶包含 zip 文件,我的主要目标是使用这些文件解压缩、处理和存储数据。

将我的所有 java 代码放入执行此过程的最佳服务是什么,因为 lambda 本身受限于内存大小。我需要一些读取 que 的东西来获取 S3 存储桶名称,然后连接到它们并执行我想要的所有处理。我已经为处理完成了所有实际代码,但我不确定我是否应该使用 AWS batch、Ec2、spark 或其他什么。我对这些服务不熟悉,亚马逊似乎提供了一百万种基本上做同样事情的服务。

【问题讨论】:

    标签: java amazon-web-services amazon-s3 amazon-ec2 aws-lambda


    【解决方案1】:

    您可以设置自动扩展 EC2 实例,该实例从 SQS 读取消息、解压缩文件并写回存储桶。

    阅读this链接可以深入了解。

    注意:最好为解压缩文件使用不同的存储桶,以提高 S3 的吞吐量。

    【讨论】:

    • 我认为我的工作流程现在可能会变成这样。 Lambda 由传入的 S3 事件触发。将记录(新的 s3 事件位置)发送到 mysql 数据库。然后创建一个 docker 容器,它使用所有新的 s3 存储桶读取数据库并连接到 s3 以解压缩使用 ec2 的 Amazon 批处理。
    • 我更喜欢 s3 事件触发器将消息放入 sqs 然后处理,因为消息的可靠性成为 aws 的责任。使用 docker 或 ec2 也是一种选择,我觉得它主要取决于文件的大小和所需的处理量。使用最好的 EC2 类解压缩以获得最佳性能。
    【解决方案2】:

    他们刚刚添加了 sqs 作为 lambda 的源(不确定什么时候,但我现在当然可以在 lambda 中添加 SQS 作为源)。不过,在互联网上还看不到任何对此的参考(这是在爱尔兰地区)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多