【问题标题】:How can I create a re-usable CloudFormation template for my Lambda functions?如何为我的 Lambda 函数创建可重复使用的 CloudFormation 模板?
【发布时间】:2021-11-29 05:48:43
【问题描述】:

作为单个 CloudFormation 项目的一部分,我有 9 个 lambda 函数。

我觉得每个 Lambda 函数的 CloudFormation 模板在很多地方都开始变得相同,并且感觉就像是重复的 YAML 代码。

有没有办法通过参数化输入来创建单个 Lambda 配置并重用相同的代码?

【问题讨论】:

    标签: python amazon-web-services aws-lambda amazon-cloudformation infrastructure-as-code


    【解决方案1】:

    是的,CloudFormation Nested Stacks 可以帮助您将共享 Lambda 配置声明为一个组件,然后您可以将其用于多个资源

    您可以创建一个专用的子“Lambda”模板,而不是为您的 Lambda 函数复制和粘贴相同的配置。

    然后,您可以从一个封装 CloudFormation 模板(通常称为“根堆栈”)多次指向您的 Lambda CloudFormation (CF) 堆栈。

    ParametersOutputs & !GetAtt 将是帮助您在子堆栈和根堆栈之间共享数据以及函数名称、内存、运行时等方面的参数化方面的核心工具。


    组织规模上,AWS CloudFormation Modules 会更合适,它允许您在更大范围内封装和重用资源配置。

    Here's how AWS describes them:

    模块是可以在多个 CloudFormation 模板中重复使用的构建块,并且可以像原生 CloudFormation 资源一样使用。

    ...

    这意味着您可以创建一个模块来定义贵组织的 Lambda 函数标准,然后在另一个定义无服务器 Amazon API Gateway 实施模式的模块中使用该 Lambda 模块。

    【讨论】:

    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 2019-06-29
    • 2020-07-22
    • 2021-09-16
    • 1970-01-01
    • 2014-08-02
    相关资源
    最近更新 更多