node.js - 如何使用无服务器框架正确部署 Lambda 层
问题描述
我正在尝试使用无服务器框架在 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
解决方案
终于发现我做错了什么。上面的配置没有问题,我的错误是需要图层中的文件。
而不是这个:
const index = require('/opt/nodejs/index');
我应该这样做:
const index = require('/opt/index');
推荐阅读
- ios - 在 vs 代码中启动 iOS 模拟器失败
- rust - 从 Vec 中删除一系列项目
- mongodb - 集合时的多重条件
- html - 如何显示所有列出的待办事项?
- javascript - 如何在 NEXT JS 中的路由之间传递状态?
- objective-c - objective-c - 如何正确包含修补的框架标头
- javascript - 无法使用错误处理检测字符串并且无法使“For”循环工作
- javascript - 如何在 Typescript 项目中使用“json-client”npm 模块?
- bash - 在shell脚本中编写一个函数来检查这两个数字是否是回文数
- regex - Bash 正则表达式从 url 列表中获取子域