【问题标题】:folder structure for serverless framework handlers无服务器框架处理程序的文件夹结构
【发布时间】:2022-01-11 14:47:04
【问题描述】:

所以我正在开发一个无服务器框架项目(并且对它相当陌生),我正在努力为我的 lambda 处理程序选择一个文件夹结构。

例如,假设我有一个“用户”路径,我想为用户执行 CRUD 操作。 在我的项目目录中,我将拥有以下内容:

  • serverless.yml
  • src/users/index.js

index.js 将包含所有处理程序:例如 module.exports = {createUser,updateUser,deleteUser,getUser}

另一种方法是使用具有以下内容的文件夹结构:

  • serverless.yml
  • src/users/createUser/handler.js
  • src/users/updateUser/handler.js
  • src/users/deleteUser/handler.js
  • src/users/getUser/handler.js

在部署无服务器应用程序时,与第二种方法相比,使用第一种方法有什么影响吗?

注意:第一种方法不使用单声道函数,而只是在该模块中使用路径的所有处理程序。

【问题讨论】:

    标签: serverless-framework


    【解决方案1】:

    如果您不使用单 lambda API 模式,那么我建议按函数对文件进行分组 - 在这种情况下,这是您列出的第一个选项,同时指定单个函数打包:

    package:
      individually: true
    

    在您的serverless.yml 模板中。这可确保该函数中仅包含特定 REST 资源所需的代码。

    如果您想了解更多关于单 lambda API 与单功能 API 的权衡和差异,可以阅读我的 post。

    【讨论】:

    • 嘿,谢谢,我阅读了您的帖子,发现它内容丰富。我决定使用您的第一个选项,但是我遗漏了包:单独因为它只是使我的部署变得臃肿,因为它重新创建了相同的文件/模块(使用多个处理程序)。包是否会单独用于多个文件,比如一个处理程序?
    • 单独打包时,上传的函数包中只会包含给定函数所需的文件。当你正常打包时,所有函数的所有代码都会上传到每个函数中。你可以在这里阅读更多关于差异的信息serverless.com/framework/docs/providers/aws/guide/packaging
    猜你喜欢
    • 2020-06-02
    • 2017-12-05
    • 1970-01-01
    • 2015-02-07
    • 2022-07-26
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2020-01-06
    相关资源
    最近更新 更多