2

我有一个大型机(MF),它在我的 EFS 位置(比如 /temp/mf 目录,文件名 test.txt)放置一个文件

我想要一个文件触发器(可以是任何 AWS 服务)来检测文件(test.txt),只要它可用并且在 30 秒内没有更改,以确保 MF 已完成对文件的写入,然后触发 lambda 函数.

我怎样才能做到这一点?

4

1 回答 1

2

EFS 和 lambda 是一个棘手的匹配。由于 EFS 本质上是一个 NFS 服务,它需要一个服务器来挂载 EFS 共享以便访问其中包含的文件。

如果您想完成这项工作,您将需要一个服务器(即一个 EC2 实例)来挂载 EFS 共享。然后,该服务器上的逻辑将需要按照您指定的方式监视该文件。

一旦文件准备好,您的服务器就可以调用您的 lambda。你有几个选择:

  1. 服务器将文件推送到由 lambda 支持的 Web 服务 API
  2. 服务器将文件推送到 S3,由 S3 事件驱动的 lambda
  3. 服务器将事件发送到 lambda(SNS 或 SQS)。事件要么包括文件,要么服务器使文件对 lambda 可用(例如通过 HTTP 服务器)

不过,老实说,考虑不同的架构可能会更好。替代方案包括:

  1. 如果 MF 上的逻辑可以处理监视并将文件推送到 S3(如果文件很小或者您可以分解数据,甚至可以推送到 SNS/SQS),那么您的 lambda 可以直接从那里获取(上面的#2)
  2. 如果您坚持使用 EFS,则无论如何都需要该 EC2 实例,因此您不妨对其进行处理
于 2017-03-28T15:20:06.323 回答