在 S3 到 Lambda 和 EC2 之间共享文件

问题描述 投票:0回答:1

我有一个触发 lambda 函数的 S3 存储桶放置事件。我需要 lambda 来获取该文件并检查附加到 EC2 实例的 EBS 是否该文件存在于某个目录中,或者是否未将其放入该目录中。我该怎么办?我的主要问题是 lambda 到 EBS 方面的问题。如果有人能提供帮助,我会很高兴。注意:我不想使用 EFS,因为 EBS 上已经有很多文件了。

python amazon-web-services amazon-s3 amazon-ec2 aws-lambda
1个回答
0
投票

不幸的是,您将“云”基础设施与“传统”虚拟机基础设施混合在一起,这并不容易。

AWS Lambda 函数在您的 EC2 实例外部运行。 EC2 实例使用的 Amazon EBS 卷由实例上运行的操作系统管理,因此您需要找到一种方法让 Lambda 函数访问“共享磁盘”(这非常难看)。

首选方法是让 EC2 实例上运行的软件从 S3 中“拉取”文件。例如,它可以每小时运行一个脚本,使用

aws s3 sync
将文件复制到实例。

或者,您可以让 S3 向 Amazon SQS 队列发送消息,然后在 EC2 实例上运行一些代码,以从 SQS 队列中提取消息并在本地处理文件,而不是触发 AWS Lambda 函数。这比使用 Lambda 函数效果更好,因为该代码可以完全访问磁盘(因为它实际上在 EC2 实例上运行)。

© www.soinside.com 2019 - 2024. All rights reserved.