ِAl*_*ush 5 amazon-web-services serverless-framework serverless
我有以下项目树
其中nodejs文件夹是以下serverless.yaml中定义的lambda层
service: aws-nodejs # NOTE: update this with your service name
provider:
name: aws
runtime: nodejs8.10
stage: dev
plugins:
- serverless-offline
layers:
layer1:
path: nodejs # required, path to layer contents on disk
name: ${self:provider.stage}-layerName # optional, Deployed Lambda layer name
functions:
hello:
handler: handler.hello
layers:
- {Ref: Layer1LambdaLayer}
events:
- http:
path: /dev
method: get
Run Code Online (Sandbox Code Playgroud)
layer1仅包含UUID软件包。
因此,当我尝试使用无服务器脱机插件在本地运行lambda时,它说找不到模块UUID。
但是,当我将代码部署到AWS时,它的运行就像一个魅力。
有什么办法可以让Lambda层在本地运行以进行测试?为了加快发展?
还是有什么方法可以在开发过程中动态设置node_module路径以指向图层文件夹,一旦我需要进行生产,它将路径更改为正确的路径
好几次尝试后,我找到了可行的解决方案
我添加了一个npm run命令,该命令将临时的node_module路径导出到路径列表中
"scripts": {
"offline": "export NODE_PATH=\"${PWD}/nodejs/node_modules\" && serverless offline"
},
Run Code Online (Sandbox Code Playgroud)
因此,节点可以在子文件夹中查找节点模块
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |