Как сохранить состояние в AWS lambdas? - PullRequest
0 голосов
/ 15 октября 2019

У нас есть библиотека, которая дает нам доступ к некоторому внешнему API, но у нее очень большое время инициализации. Также нет способа инициализировать его с помощью какого-либо ключа сеанса или чего-либо, что может быть сохранено, оно всегда должно проходить через весь процесс инициализации.

Есть ли способ инициализировать библиотеку только один раз, а затем использоватьво всех лямбда-функциях?

Если бы мы каким-то образом смогли внедрить сеанс путем обратного инжиниринга кода, где бы данные сеанса сохранялись лучше всего? В DynamoDB, переменные сцены, что-то еще?

1 Ответ

1 голос
/ 15 октября 2019
  • В aws-лямбде есть глобальные переменные, любая переменная, объявленная вне обработчика lambda_handler, может использоваться в последовательном вызове, если тот же контейнер используется aws. Не уверен, что это будет хорошо с вашим делом. Поскольку после уничтожения контейнера с помощью aws, следующий вызов, выполненный после этого, должен будет снова пройти повторную инициализацию. Все это будет зависеть от того, как часто будет использоваться этот сервис или насколько он будет занят.
  • Если вы думаете об обратном проектировании кода, то в этом случае у вас есть несколько вариантов для сохранения сеанса, таких как DynamoDB, Amazon ElastiCache. Тогда все зависит от ваших потребностей в услугах и бюджета.
  • По предложению elRull, если вы можете построить сервис вокруг него и поддерживать его в t2.micro, который может работать. Как инициализировать его при первом вызове, а затем сохранить его и позволить другим вызовам использовать его.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...