将S3对象ID传递给EC2实例的最佳方法?

目前在我构建的环境中,一个文件作为 JSON 文件从 Web 表单提交到 S3 存储桶。当该文件到达 S3 存储桶时,它会触发 AWS Lambda 打开 EC2 实例。EC2 需要在 S3 存储桶中下载该文件并将其提供给应用程序。完成后,文件将提交到 S3 存储桶并触发 AWS Lambda,从而关闭 EC2 实例。

下载该文件的最佳方式是什么?这些是我的一些想法,但我不确定它们是否可行/实用:

  1. 将触发 AWS Lambda 的文件的 S3 对象 ID 传递给 EC2(使用 Lambda)
  2. 将 S3 存储桶中最近上传的文件的 S3 对象 ID 传递给 EC2
  3. 使用 AWS CLI 获取存储桶中唯一文件的 S3 对象 ID(例如:mybucket/uploaded_files/)

一旦 EC2 实例传递了对象 ID,它就会下载它。想法/意见?谢谢。

编辑澄清:上传到 S3 存储桶的文件是一个 JSON 文件,其中包含应用程序的配置选项。永远只有一个 EC2 实例(因为这是一个副项目)。

回答

可能最具可扩展性和容错性的方法是通过SQS。

在这种情况下,您的 lambda 将对象 ID 传递到专用 SQS 队列并启动实例。启动时的实例从队列中读取消息并处理图像,包括下载它们。


以上是将S3对象ID传递给EC2实例的最佳方法?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>