一次部署多个AWS Netcore Lambda函数

时间:2018-08-06 11:27:49

标签: visual-studio .net-core aws-lambda amazon-cloudformation serverless-framework

是否有使用Serverless Framework或AWS CloudFormation模板的解决方案来发布多个lambda,这些lambda分别位于单个视觉工作室.proj和单个视觉工作室.sln

我能找到包含同一类或项目中的lambda函数的任何示例。

1 个答案:

答案 0 :(得分:2)

我前一段时间对此进行了调查。根据我的记忆,我认为您可以使用以下两种方法之一使用同一CloudFormation模板部署多个lambda函数。

  1. 为每个函数手动创建单独的zip软件包,将其加载到S3中,然后在CloudFormation模板中为每个Lambda函数显式引用该软件包。
  2. 将所有已发布项目中的文件合并到同一文件夹(CloudFormation模板也必须位于同一文件夹中),然后使用“ aws cloudformation package”命令创建zip,将其加载到S3,然后进行更新带有S3包路径的模板。由于Lambda调用方法的方式,我不确定您是否能够为每个项目建立嵌套文件夹。

#1的问题在于,它更多是一个手动过程,或者还有很多脚本需要完成。

#2的问题在于,即使您仅访问一个Function处理程序,创建的每个Lambda函数都将包含该包中所有函数的文件。另外,如果在不同的项目中使用同一程序集的不同版本,则可能发生文件冲突。可以为Lambda函数加载的软件包大小也有限制(压缩后为50MB,未压缩时为250MB),这对于某些人来说也可能是一个因素。

由于这些增加的复杂性和潜在问题,我们决定为每个Lambda函数使用单独的CloudFormation模板和堆栈。

Lambda limits - see "AWS Lambda Deployment Limits"