Как предотвратить дублирование кода в лямбде? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть некоторые функции Nodejs, которые содержат дублированные блоки кода. Я знаю, что мы можем использовать лямбда-слой для разделяемых библиотек, но я хотел знать, возможно ли тоже обмениваться кодами? например, один из дублированных кодов показан ниже

const connection = mysql.createPool({
  host: process.env.DB_HOST,
  database: process.env.DB_NAME,
  user: process.env.DB_USER,
  port: process.env.DB_PORT,
  password: process.env.DB_PASSWORD
});

Я хочу импортировать этот блок в несколько функций, не записывая его снова и снова

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Один из вариантов - создать отдельную лямбду со всем общим кодом.Затем вы можете вызывать общую лямбду из других лямбд или использовать «лямбду-основную» для обработки вперед / назад.

0 голосов
/ 16 мая 2019

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

  • , вы можете поместить общий код в отдельный файл (в итоге вы получите 3 файла в вашем проекте - lambda1.js, lambda2,js и shared.js).Затем вам нужно будет упаковать lambda1 в виде zip-файла, содержащего, например, lambda1.js и shared.js.
  • Вы можете хранить весь код в одном файле (скажем, alllambda.js) и иметь разныеНастроенные функции обработчика (exports.handler1, exports.handler2) - при настройке лямбда-функций AWS Lambda1 имеет Handler, настроенный как handler1, а Lambda2 имеет handler2.Это, очевидно, плохо масштабируется (и имеет дополнительные недостатки при совместном использовании кода инициализации).
...