【问题标题】:How to properly deploy Lambda layers with Serverless framework如何使用无服务器框架正确部署 Lambda 层
【发布时间】:2020-07-19 18:09:55
【问题描述】:

我正在尝试使用无服务器框架在 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 时,一切正常。


我尝试过的事情:
- 在 nodejs 目录中移动 serverless.yml 并从那里进行部署,但这给了我以下错误:
No file matches include / exclude patterns

【问题讨论】:

    标签: node.js amazon-web-services aws-lambda serverless-framework aws-lambda-layers


    【解决方案1】:

    终于发现我做错了什么。 上面的配置没有问题,我的错误是需要图层中的文件。
    而不是这个:
    const index = require('/opt/nodejs/index');
    我应该这样做:
    const index = require('/opt/index');

    【讨论】:

    • 经过 2 小时的搜索没有成功,偶然发现了您的帖子。非常感谢。
    猜你喜欢
    • 2021-10-07
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多