Как смонтировать EFS на лямбда-функцию?
Мне нужно запустить периодическую очистку на моем диске EFS (который совместно используется несколькими экземплярами автомасштабирования EC2). Очистка включает удаление файлов / папок, которые соответствуют определенному критерию (дата / размер и т. Д.).
Я представлял AWS Lambda идеальным решением для этой задачи. Просто периодически запускайте функцию, которая должна смонтировать общий диск и запустить очистку. Но похоже, что Lambda поддерживает создание / опрос диска только по его типу, изменение точки монтирования и т. Д.
Есть ли альтернатива для выполнения этой задачи?
3 ответа
До сих пор я обнаружил, что, хотя прямые файловые операции не поддерживаются Lambda, он может раскрутить экземпляр EC2, который может запустить сценарий запуска, чтобы выполнить очистку, а затем завершить работу. Хотя это решение довольно неуклюже, я не вижу альтернативы.
Лямбда-поддержка EFS, похоже, является давней потребностью:
AWS выпустила поддержку файловой системы Lambda. См. Эти сведения для получения информации о конфигурации, включая шаблоны CloudFormation и SAM. Файловая система и лямбда-функция должны находиться в одном регионе, а функция должна быть прикреплена к VPC, хотя может находиться в другой учетной записи.
Как насчет монтирования вашей EFS к экземпляру ec2 и использования лямбды для ssh в ec2 и выполнения очистки. В качестве примера, вы можете использовать библиотеку Python Fabric для подключения ssh к ec2.
Решение с EC2 вообще не требует лямбды. Вы можете добавить группу автоматического масштабирования с запланированной политикой, чтобы запускать экземпляр один раз в неделю и выключать его. Все необходимые действия могут быть добавлены с использованием пользовательских данных или некоторого сценария оболочки автоматического запуска в экземпляре ec2.