如何防止Lambda中的代码重复?

时间:2019-05-15 10:04:15

标签: node.js aws-lambda aws-lambda-layers

我有一些Nodejs函数,其中包含重复的代码块。 我知道我们可以对共享库使用lambda层,但是我想知道,是否也可以共享代码? 例如,下面显示了重复的代码之一

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 :(得分:0)

除了使用层(这可能只是共享代码的一个杀伤力)之外,您还可以使用另外两个路由器:

  • 您可以将共享代码放在一个单独的文件中(这样一来,您的项目中最终会有3个文件-lambda1.jslambda2,jsshared.js)。然后,您需要将lambda1打包为一个包含lambda1.jsshared.js的zip文件。
  • 您可以将所有代码保存在一个文件中(例如alllambda.js),并配置不同的处理函数(exports.handler1exports.handler2)-配置AWS Lambda函数时,{ {1}}已将Lambda1配置为Handler,而handler1具有Lambda2。显然,这不能很好地扩展(并且具有共享初始化代码的额外缺点)。

答案 1 :(得分:0)

一个选项是使用所有共享代码创建单独的Lambda。然后,您可以从所有其他lambda中调用共享的Lambda,或使用“主要” lambda处理后部/后部。