Есть ли способ предоставить лямбда-пользователю доступ внутри контейнера?
Предыстория: наша команда пытается запустить тестирование производительности пользовательского интерфейса на лямбда-выражении. Прямо сейчас мы запускаем тесты производительности, загружая наш код в виде zip-файла на лямбда. Проблема здесь в том, что мы достигли предельного размера файла лямбда-архива в 50 МБ, поскольку наше приложение постоянно растет. Затем мы столкнулись с контейнерами Lambda, размер изображения которых ограничен 10 ГБ.
Проблема: мы создаем наш образ докера с необходимыми зависимостями, и мы можем запускать наш тестовый пример локально, а также на агенте Jenkins. Но когда мы пытались запустить тот же образ докера на лямбде, он выдает ошибку: «У пользователя лямбда нет прав на запись для данного каталога». Google Chrome создает файлы при запуске сценария автоматизации. Lambda имеет доступ для чтения и записи только внутри временной папки. Размер временной папки - 512 МБ. Есть ли способ предоставить лямбда-доступ внутри контейнера для запуска тестовых примеров?
1 ответ
Как обоснованное предположение, ответ - нет. Если Lambda разрешает чтение / запись контейнеров, то образ может злонамеренно или случайно занять все дисковое пространство на узле, на котором он работает, и повлиять на выполнение других контейнеров.
Если вам нужно больше места, то один из вариантов - смонтировать файловую систему EFS в Lambda. Однако я не знаю, работает ли он с контейнером или просто с развертыванием ZIP.
Однако, учитывая, что вы уже поместили свое приложение в контейнер, я думаю, что лучшим решением будет использование ECS, а не Lambda. Это даст вам 20 ГБ эфемерного хранилища , и вы можете смонтировать том EFS, если вам нужно больше. Дополнительным преимуществом ECS является то, что время выполнения не ограничено 15 минутами.