在 Aws lambda 和 EC2 实例之间共享文件

时间:2021-07-22 07:12:52

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

我想要一个在 AWS Lambda 和 EC2 (Windows) 之间共享文件的解决方案。

在 s3event 通知之后,lambda 如何将文件放入 ec2 文件系统中?同理,如果方式 lambda 想要访问 ec2 文件系统那也应该是可以的。

例如:如果在 s3 中创建的任何文件将触发通知 lambda,则该文件将复制到某个路径中的 EC2 驱动器,然后服务器内的应用程序将对其进行处理,依此类推。

请让我知道实现这一目标的任何可能方法。提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以让 S3 在创建对象时发送通知事件。

在您的 lambda 函数中设置一个使用 s3 通知事件的 S3 触发器 - 查看本教程:Using an Amazon S3 trigger to invoke a Lambda function

然后,如果您关心实时处理,您可能希望 lambda 调用 EC2 服务上的端点以触发复制功能,或者在消息代理(如 SQS)中获取事件源。

答案 1 :(得分:0)

使用EFS。这是一个网络文件系统,可以同时挂载在 EC2 实例和 Lambda 函数中。

由于过程相当长,问题没有提到正在使用哪个操作系统(Windows 不支持 EFS),或者什么 Lambda 运行时是可取的。记录一个完整的例子是不切实际的,但是有一些有用的入门指南。

有一篇关于使用 EFS within Lambda 函数的博客。 Lambda 函数需要访问权限才能从 S3 存储桶读取对象并将其存储在 EFS 卷上。

还存在运行 Amazon Linux 的 mounting EFS on an EC2 实例示例。