Как AWS Lambda или любой другой FAAS загружаются
Недавно мы переехали в AWS. и мы находимся в процессе рефакторинга нашего кода, чтобы воспользоваться преимуществами предложений AWS. одна из таких вещей - AWS Lambda (Faas). Я понимаю, что AWS лямбда - это процесс, выполняющийся в каком-то контейнере ec2 (с необходимыми вычислительными ресурсами (память и процессор)). и каждый раз, когда вызывается лямбда-функция, этот процесс загружается (холодный запуск) и запускает логику, заданную в функции, а затем завершается после определенного времени простоя. Но одна вещь, которая меня поражает, это то, что лежит в основе кода, который принимает это функция, это какой-то Java-процесс, который имеет некоторую функцию, которая принимает лямбду в качестве входных данных (поставщика) и передает результат обратно. И как происходит передача функции в процесс назначения (http или любой другой протокол), Я знаю, что мой вопрос очень грубый, но кто-то может дать мне понять. Спасибо
1 ответ
Исходя из моего понимания, в зависимости от конкретного выбора языка времени выполнения (NodeJS, Java, Python), вы получаете контейнеры с различными средами выполнения.
Например, если вы используете Java, JVM должна быть уже установлена в базовый контейнер конкретной среды выполнения.
Поскольку процесс начальной загрузки происходит чаще, эти контейнеры должны быть легче с минимальными зависимыми библиотеками или инфраструктурами, которые легко доступны внутри.
Чтобы понять особенности Lambda-контейнеров, установите локальные Docker-контейнеры AWS SAM, которые будут ближе к тому, что мы ожидаем от Lambda.