我正在尝试使用无服务器框架在AWS中配置和部署某些层。
图层文件所在的目录结构是:
lambda-layers
|
| - test-layers
|
| - nodejs
| | - index.js
| | - test.js
|
| - serverless.yml
我的serverless.yml
文件看起来像这样
service: test-layers
provider:
name: aws
runtime: nodejs12.x
stage: dev
region: region
layers:
TestLayer:
path: nodejs
我运行sls deploy
,可以看到该层已部署,但是当我尝试从Lambda的层中的文件访问函数时,如下所示:
const index = require('/opt/nodejs/index');
我的Lambda崩溃并抱怨索引模块不存在。
当我压缩图层内容并将其手动上传到AWS时,一切正常。
我尝试过的事情:
-将serverless.yml
移动到nodejs目录中并从那里进行部署,但这给了我以下错误:
No file matches include / exclude patterns
答案 0 :(得分:2)
最后发现我在做什么错。
上面的配置没有任何问题,我的错误是需要来自各层的文件。
代替这个:
const index = require('/opt/nodejs/index');
我应该这样做:
const index = require('/opt/index');