AWS Lambda предназначен для использования в качестве лица без инфраструктуры, но он также будет использовать тот же самый «контейнер», при некоторых обстоятельствах, но вы хотите, чтобы убедиться, что вы понимаете, как это работает, прежде чем сделать заявление зависят от этого.
С помощью AWS Lambda с использованием Java это означает, что вы можете иметь одноэлементный класс, который может инициализировать один раз для каждого контейнера. Этот шаблон позволяет выполнять первоначальную настройку контейнера, например, загружать файлы с S3 один раз или устанавливать соединение с другим сервером, таким как Kafka, MySQL, Memcached и т. Д. (Примечание стороны: к этому можно подключить только серверы в общедоступном Интернете время, но подключение к серверам в VPC - это анонсированная функция, которая появится в ближайшее время.)
AWS Lambda всегда будет развертывать новые контейнеры при развертывании новой версии кода, поэтому в это время вы, скорее всего, увидите наибольший оборот в активном контейнеры. Кроме того, после периода бездействия AWS Lambda отключит незанятые контейнеры. Однако, если у вас есть последовательный поток запросов, ваш контейнер AWS Lambda будет повторно использоваться для нескольких запросов.
Специфические способы использования контейнеров не описаны подробно AWS, насколько я могу судить. Вероятно, это связано с тем, что цель AWS Lambda заключается в том, что вам больше не нужно беспокоиться об инфраструктуре.
Что касается приема сигнала для дополнительной обработки при закрытии контейнера, я не верю, что есть способ сделать это прямо сейчас. Цель Lambda заключается в том, что вы только выставили счет за свои запросы, и закрытие происходит за пределами этого окна. Очевидно, что контейнеры в конечном итоге заканчиваются, но я не знаю, как детали того, что на самом деле происходит для завершения JVM, задокументированы прямо сейчас.
, относящиеся к конкретным озабоченности по поводу KafkaProducer, вы, скорее всего, нужно будет ждать AWS, чтобы освободить дополнительные возможности для более эффективной поддержки этого варианта использования.
Обсуждение проблем с подключением опроса, связанного с истощением AWS Lambda очерчивает связанный с этим вопрос: https://forums.aws.amazon.com/thread.jspa?threadID=216000
Спасибо - немного «смотреть это пространство» один в тот момент, то ..может опубликовать что-то на форумах AWS dev также относительно лучшей практики для обслуживания клиентских подключений к внешним службам (например, kafka). –
Есть ли новые идеи относительно этого? – andresp