如何在Lambda函数上挂载EFS?

12

我需要定期清理我的EFS驱动器(由多个自动扩展的EC2实例共享)。清理涉及删除符合某些条件(日期/大小等)的文件/文件夹。

我原本想使用AWS Lambda来完成这个任务,只需定期触发函数,该函数应该挂载共享驱动器并运行清理。但似乎Lambda仅支持创建/轮询磁盘以获取其类型和修改其挂载点等操作。

有没有其他方法可以完成此任务?

4个回答

12

目前我发现虽然Lambda不支持直接文件操作,但它可以启动一个EC2实例,该实例可以运行启动脚本来进行清理,然后关闭。

虽然这种解决方案有些笨重,但我没有看到任何其他可行的替代方法。

Lambda对EFS的支持似乎是长期需求:

为什么无法将EFS挂载到Lambda?

能否从Lambda环境中挂载EFS?


4
AWS发布了Lambda文件系统支持。请参阅这些详细信息获取配置信息,包括CloudFormation和SAM模板。文件系统和Lambda函数必须在同一区域,并且函数必须附加到VPC,尽管它可以位于不同的帐户中。

3

您想将EFS挂载到EC2实例,并使用Lambda SSH进入EC2并进行清理。例如,您可以使用Python Fabric库SSH进入EC2。


3

使用EC2解决方案不需要Lambda。您可以添加带有定时策略的自动扩展组,每周启动一次实例并关闭它。所有所需的操作都可以在EC2实例中使用用户数据或某些自动运行的shell脚本中添加。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接