我应该用什么目录结构来进行以下操作:
- 将作为层打包的NodeJS代码?
- 使用共同代码的NodeJS应用程序? 我希望使用SAM或cloudFormation模板构建层, 并使用另一个模板构建使用它的Lambda。我希望多个Lambda使用该层,因此需要单独打包。
我还不清楚应该使用哪种确切的目录结构来存放共同代码。另外,如果我的共同代码反过来又依赖于其package.json文件中的内容,我该如何构建目录结构呢?例如:我想构建通用代码以从AWS参数存储中读取数据。然后我将需要在我的通用代码的package.json中依赖于aws-param-store,即:
"dependencies": {
"aws-param-store": "^3.0.0",
假设我的通用代码驻留在名为 my-common-code 的某个包中。
一旦我正确构建和部署层之后,我知道可以在我的 SAM 模板中引用 ARN 名称(这是正确的做法)来为 Lambda 进行设置。那么,在调用 Lambda 中,如何引用通用代码呢? 1. 目录结构是怎样的? 2. 为了使调用的 Lambda 引用 my-common-code 的名称和版本,需要将什么内容放入 package.json 文件中?我认为可能是这样的:
"dependencies": {
"my-common-code": "^1.0.0",
我希望在我的Lambda中能够做到这一点:
let commonModule = require('my-common-code');
commonModule.doSomething();
我尝试了各种不同的结构和配置,但是出现了错误,要么是无法找到我的通用代码(my-common-code),要么是它依赖的某些内容无法找到,例如aws-param-store。