AWS多个Lambda在同一个项目中

时间:2018-02-15 10:45:05

标签: aws-lambda nodes aws-sdk

我的团队正在创建一个遵循无服务器架构的项目,我们正在使用AWS Lambda,NodeJS和无服务器框架。 该应用程序将是一组服务,每个服务将作为单独的功能处理。

我找到了在同一项目下组合多个功能的示例,然后使用云形成一次部署所有功能,但是我们不希望有一些缺陷,比如为每个lambda函数部署了不同模块的资源, 这将导致一些冗余,如果我们想要更改一个文件,它将不会反映在所有lamda函数中,因为它是托管lamda函数的本地文件

https://github.com/serverless/examples/tree/master/aws-node-rest-api-with-dynamodb

我的问题: 您是否知道组织包含多个功能的项目的最佳方式,每个项目都有单独的.yaml和配置,能够在需要时部署所有功能或指定要部署的选择性更新功能?

1 个答案:

答案 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将只包含所需的代码