如何为我的 Lambda 函数创建可重复使用的 CloudFormation 模板?
Posted
技术标签:
【中文标题】如何为我的 Lambda 函数创建可重复使用的 CloudFormation 模板?【英文标题】:How can I create a re-usable CloudFormation template for my Lambda functions? 【发布时间】:2021-11-29 05:48:43 【问题描述】:作为单个 CloudFormation 项目的一部分,我有 9 个 lambda 函数。
我觉得每个 Lambda 函数的 CloudFormation 模板在很多地方都开始变得相同,并且感觉就像是重复的 YAML 代码。
有没有办法通过参数化输入来创建单个 Lambda 配置并重用相同的代码?
【问题讨论】:
【参考方案1】:是的,CloudFormation Nested Stacks 可以帮助您将共享 Lambda 配置声明为一个组件,然后您可以将其用于多个资源。
您可以创建一个专用的子“Lambda”模板,而不是为您的 Lambda 函数复制和粘贴相同的配置。
然后,您可以从一个封装 CloudFormation 模板(通常称为“根堆栈”)多次指向您的 Lambda CloudFormation (CF) 堆栈。
Parameters
、Outputs
& !GetAtt
将是帮助您在子堆栈和根堆栈之间共享数据以及函数名称、内存、运行时等方面的参数化方面的核心工具。
在组织规模上,AWS CloudFormation Modules 会更合适,它允许您在更大范围内封装和重用资源配置。
Here's how AWS describes them:
模块是可以在多个 CloudFormation 模板中重复使用的构建块,并且可以像原生 CloudFormation 资源一样使用。
...
这意味着您可以创建一个模块来定义贵组织的 Lambda 函数标准,然后在另一个定义无服务器 Amazon API Gateway 实施模式的模块中使用该 Lambda 模块。
【讨论】:
嵌套麻袋怎么样?在这种情况下似乎更容易。 @Marcin 非常正确,我也会将其添加到我的答案中:) Ermiya Eskandary 与我的团队讨论了解决方案。他们建议全局部分适合用例。docs.aws.amazon.com/serverless-application-model/latest/…以上是关于如何为我的 Lambda 函数创建可重复使用的 CloudFormation 模板?的主要内容,如果未能解决你的问题,请参考以下文章
AWS Lambda:如何为具有 VPC 访问权限的 lambda 函数设置 NAT 网关