Всегда ли конкретная AWS лямбда-функция запускается на одной машине? - PullRequest
0 голосов
/ 29 марта 2020

Мы создали AWS лямбда-функцию в Python через консоль и протестировали, нажав кнопку «Тест». Работает нормально.

Так что теперь я хотел бы понять, каждый раз, когда я нажимаю «Тест»,

  • Всегда ли эта лямбда-функция работает на одной и той же машине?
  • AWS Lambda запускает контейнер на той же машине, на которой будет выполняться пользовательская функция?

Если нет, что если я создам подпроцесс в функции обработчика, как получить текущий подпроцесс между несколькими вызовами этой лямбда-функции?

Благодарю за разъяснение!

1 Ответ

1 голос
/ 29 марта 2020

Функция AWS Lambda имеет шанс , что она повторно запустит тот же контейнер на той же машине, она может даже перезапустить процесс, который выполнялся в контейнере, когда Lambda прекратила запуск контейнера. При проектировании вашей лямбда-функции важно помнить, что не гарантировано. Вы должны написать свою функцию Lambda, чтобы она могла обрабатывать последующие выполнения в чистой среде на другом компьютере.

Пожалуйста, помните, что AWS Лямбда-функции будут остановлены через 15 минут работы. Пожалуйста, смотрите: https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html

Вы можете попытаться спроектировать Lambda так, чтобы он выполнял некоторую обработку, затем сохранить данные в другом месте, а затем следующая функция Lambda, которая запускается, выполнит еще некоторую обработку, как как только предыдущая лямбда заканчивается. Обычно вы хотите использовать Lambda для рабочих нагрузок, которые ждут определенного события или времени, прежде чем выполнять дополнительную обработку.

Один из лучших вариантов использования Lambda - это платить только за вычислительную мощность, когда она вам нужна.

В вашем случае вы можете рассмотреть возможность использования какой-либо другой службы контейнеров, например:

EKS - https://aws.amazon.com/eks/ или ECS - https://aws.amazon.com/ecs/

Или, возможно, даже рассмотреть Elasti c Beanstalk - https://aws.amazon.com/elasticbeanstalk/

...