1

我有一些包含重复代码块的 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
});

我想把这个块导入多个函数而不是一遍又一遍地写

4

2 回答 2

1

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

于 2019-05-16T18:40:19.933 回答
1

除了使用层(这可能只是共享代码的过度杀伤),您还可以使用其他两个路由器:

  • 您可以将共享代码放在一个单独的文件中(因此您最终会在项目中使用 3 个文件 -和lambda1.js)。然后,您需要将您的文件打包为一个 zip 文件,其中包含和例如。lambda2,jsshared.jslambda1lambda1.jsshared.js
  • 您可以将所有代码保存在一个文件中(例如alllambda.js)并配置不同的处理程序函数(exports.handler1, )exports.handler2-当您配置 AWS Lambda 函数时Lambda1Handler配置handler1为 这显然不能很好地扩展(并且具有共享初始化代码的额外缺点)。Lambda2handler2
于 2019-05-16T05:56:45.640 回答