Как передать значения между двумя облачными функциями?

Я работаю над авторизацией GitHub и должен сравнить две строки (состояние Github и локальное состояние). Отдельный модуль (файл) используется для хранения и извлечения состояний. В первой функции я помещаю значение в объект, определенный в этом модуле, во второй функции я пытаюсь извлечь это значение. Функции успешно выполнялись на локальном хосте, но после развертывания приложения я не могу получить строку. Похоже, он инициализирует новый экземпляр этого модуля для каждой функции. Может есть другие способы передачи данных между функциями (кратковременное хранение, можно хранить в ОЗУ)?


person iamskok    schedule 05.06.2019    source источник
comment
Посмотрите, поможет ли эта ссылка: Передача Параметры между двумя функциями AWS Lambda   -  person TechFree    schedule 05.06.2019
comment
Когда вы говорите о функциях, вы имеете в виду функции AWS Lambda? Это две разные функции или два вызова одной и той же функции? Функции AWS Lambda контейнеризированы. Нет связи между отдельными функциями Lambda (и нет гарантии связи между отдельными вызовами одной и той же функции).   -  person John Rotenstein    schedule 06.06.2019
comment
Да, я имею в виду функции AWS Lambda (точнее, я использую их в Netlify) . Это две разные функции auth и access-token.   -  person iamskok    schedule 07.06.2019


Ответы (1)


Две ваши функции Lambda выполняются в отдельных изолированных контейнерах и не имеют доступа к локальному состоянию друг друга. Для обмена состоянием между функциями у нас есть несколько вариантов:

  • Используйте внешнее хранилище, например DynamoDB.
  • Сохранять состояние в клиенте, например, в браузере/мобильном приложении.
  • Цепные функции: после вычисления вашего состояния в функции A вызовите функцию B, передав вычисленное состояние в качестве входного параметра.
person Aleksi    schedule 09.08.2019