如何使用无服务器将大型应用程序部署到 Lambda,绕过或不重新获得 CloudFormation 资源限制

如何使用无服务器将大型应用程序部署到 Lambda,绕过或不重新获得 CloudFormation 资源限制

我正在使用无服务器(https://github.com/serverless/serverless) 将我的函数部署到 AWS Lambda。但是,现在我开始收到错误:

模板格式错误:资源数量 217 大于允许的最大值 200

经过一番研究,我发现这个限制是来自 AWS CloudFormation 的限制,所以我想知道如何通过无服务器将我的应用程序部署到 Lambda。

任何帮助都将不胜感激。

谢谢!

答案1

200 是一个硬性限制。您将无法通过无服务器方式原样部署此应用程序。

但是,如果您愿意打破常规,您可以绕过它。CloudFormation 有 200 个资源限制是有原因的,CloudFormation 用户一直在努力解决这个问题。我们处理这个问题的方法有三种:

  1. 减少正在使用的资源数量(并非总是可能的)。
  2. 使用嵌套模板,其中父模板调用其他模板。
  3. 将您的模板拆分为多个并行运行的模板。

“无服务器”框架可能没有原生的拆分方法,因此您必须做一些工作。可能是将您的模板拆分为两个不同的模板,因为我怀疑它是否会嵌套。

相关内容