Serverless framework 无服务器包装问题
我使用NodeJS 10来创建lambda的数量。许多函数都有包含在每个函数中的共享代码,因此总体结构如下所示:Serverless framework 无服务器包装问题,serverless-framework,Serverless Framework,我使用NodeJS 10来创建lambda的数量。许多函数都有包含在每个函数中的共享代码,因此总体结构如下所示: project/ function1/ api.js serverless.yml function2/ api.js serverless.yml function3/ api.js serverless.yml shared/ http/ index.js no
project/
function1/
api.js
serverless.yml
function2/
api.js
serverless.yml
function3/
api.js
serverless.yml
shared/
http/
index.js
node_modules/
intercom/
index.js
node_modules/
每个serverless.yml
都包含如下函数声明:
functions:
test-database-connection:
package:
include:
- ../shared/http/**
- ../shared/intercom/**
- ./node_modules/**
- ./api.js
handler: api.connectivityDatabase
events:
- http:
path: /api/test/database
method: post
在开发过程中,它可以正常工作,也可以脱机工作,但打包后它就变得不可用了,因为包更改了共享的文件夹的相对路径,如:
package.zip/
shared/
http/
...
intercom/
...
api.js
在开发过程中,包中是否可以保持相同的结构?或者以任何其他方式修复将在本地和AWS上工作的模块路径?如果您使用npm,我建议在共享中创建package.json
文件
然后,您只需在function1
中的package.json
文件中使用相对路径即可:
"name": "function1",
"dependencies": {
"shared": "file:../shared",
...
}
然后,您可以从serverless.yml
文件中删除包
逻辑,让包管理器处理事情。无服务器框架将在打包应用程序进行部署时解析这些包