我需要在我的 EFS 驱动器(由多个自动缩放 EC2 实例共享)上运行定期清理。清理涉及删除满足特定标准(日期/大小等)的文件/文件夹。
我认为 AWS Lambda 是完成这项任务的完美解决方案。只需定期触发该功能,它应该挂载共享驱动器并运行清理。但似乎 Lambda 只支持创建/轮询磁盘的类型和修改其挂载点等。
有没有其他方法可以完成这项任务?
我需要在我的 EFS 驱动器(由多个自动缩放 EC2 实例共享)上运行定期清理。清理涉及删除满足特定标准(日期/大小等)的文件/文件夹。
我认为 AWS Lambda 是完成这项任务的完美解决方案。只需定期触发该功能,它应该挂载共享驱动器并运行清理。但似乎 Lambda 只支持创建/轮询磁盘的类型和修改其挂载点等。
有没有其他方法可以完成这项任务?
到目前为止,我发现虽然 Lambda 不支持直接文件操作,但它可以启动一个 EC2 实例,该实例可以运行一个启动脚本来进行清理然后关闭。虽然这个解决方案相当笨拙,但我没有看到任何替代方案。
Lambda 对 EFS 的支持似乎是一个长期存在的需求:
EC2 的解决方案根本不需要 lambda。您可以添加具有计划策略的 Auto Scaling 组,以每周启动一次实例并关闭它。可以使用用户数据或 ec2 实例中的一些自动运行的 shell 脚本添加所有需要的活动。
如何将您的 EFS 安装到 ec2 实例并使用 lambda SSH 进入 ec2 并进行清理。例如,您可以使用 python 结构库通过 ssh 进入 ec2。
AWS 已发布Lambda 文件系统支持。请参阅这些详细信息以获取配置信息,包括 CloudFormation 和 SAM 模板。文件系统和 Lambda 函数必须在同一个区域,并且函数必须附加到 VPC,尽管它可能在不同的账户中。