我的团队正在创建一个遵循无服务器架构的项目,我们正在使用AWS Lambda,NodeJS和无服务器框架。 该应用程序将是一组服务,每个服务将作为单独的功能处理。
我找到了在同一项目下组合多个功能的示例,然后使用云形成一次部署所有功能,但是我们不希望有一些缺陷,比如为每个lambda函数部署了不同模块的资源, 这将导致一些冗余,如果我们想要更改一个文件,它将不会反映在所有lamda函数中,因为它是托管lamda函数的本地文件
https://github.com/serverless/examples/tree/master/aws-node-rest-api-with-dynamodb
我的问题:
您是否知道组织包含多个功能的项目的最佳方式,每个项目都有单独的.yaml
和配置,能够在需要时部署所有功能或指定要部署的选择性更新功能?
答案 0 :(得分:3)
我认为我找到了一种很好的方法,就像这里提到的那样:https://serverless.readme.io/docs/project-structure
我创建了一个包含一些Labmda函数的服务,每个函数都包含在一个单独的文件夹中,我在根级别上有一个lib文件夹,其中包含可以在我的Lambda函数中使用的所有常用模块。
所以我的结构看起来像:
Root ---
functions----
function1
function2
libs---
tests--
resources
serverless.yml (root level)
在我的yml文件中,我用相对路径指向Lamdas,如:
functions:
hello1:
handler: functions/function1/hello1.hello
现在,我可以使用一个无服务器命令部署所有功能,或者选择性地部署更改功能特性
并且部署的Lamda将只包含所需的代码