У нас есть BFF, построенный с AWS Lambda (nodejs) и шлюзом API, который взаимодействует с API, который требует аутентификации пользователя. И как мы его построили, у нас есть отдельный модуль / файл для сервисов API. Примерно так:
src
--handlers
--users.js // with function getMe()
--apiServices
--usersApi.js // with function getUser(id)
Итак, что происходит, функция getMe () получит событие с заголовками запроса с токеном аутентификации. Но нам нужно использовать токен аутентификации в getUser (id). Я подумал о двух вариантах сделать это:
- обновить getUser (id), чтобы принять
authToken
параметр. - сохранить токен аутентификации в глобальной переменной
Я предпочитаю делать # 2, потому что это требует меньше изменений, но я боюсь, что это может быть не очень хорошая идея, потому что нет никакого способа точно знать, когда будет использоваться контейнер лямбда (или если будет использоваться повторно вообще): https://aws.amazon.com/blogs/compute/container-reuse-in-lambda
Кто-нибудь пробовал второй подход раньше? Или мне просто go с # 1? Что касается # 1, то в apiServices у нас много файлов с множеством функций, поэтому я хотел бы применить как можно меньше изменений.