【问题标题】:AWS Cloud Formation; Breaking up template into several files and passing in variables with cfn-includeAWS 云形成;将模板分解为多个文件并使用 cfn-include 传入变量
【发布时间】:2019-02-04 18:45:56
【问题描述】:

我的 aws 云形成模板遇到了一些问题。

我有一个通用的 staging.yaml 文件,我在其中定义了我的所有 lambda 和 api。 问题是,那个文件变得太大了。 所以我决定使用这个包:https://www.npmjs.com/package/cfn-include。 所以我可以把文件分成几个模板。 因此:

Fn::Merge:
 - !Include ./templates/api-lambdas/accounts.yaml
 - !Include ./templates/api-lambdas/officers.yaml
 - !Include ./templates/api-lambdas/branches.yaml

我的问题是,有没有办法将变量传递给这些包含? 即:

- !include ./templates/api-lambdas/accounts/yaml, variables: {database: databaseName, environment: staging}

accounts.yaml 看起来像这样:

Environment:
 Variables:
  ENV: ${environment}
  DB_NAME: ${databaseName}

谢谢!

【问题讨论】:

    标签: amazon-web-services yaml amazon-cloudformation


    【解决方案1】:

    还有另一种选择:cfpack.js 工具。它允许您将巨大的模板拆分为较小的模板,这些模板将合并为一个并部署到您的 CloudFormation 堆栈中。

    【讨论】:

      【解决方案2】:

      也许你想试试嵌套堆栈 (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) 通常当文件变得太大而无法读取时,它们可能很快就会达到最大模板大小限制。 在那里,您可以将根文件中的所有参数以非常简单的方式传递给子堆栈。

      【讨论】:

        猜你喜欢
        • 2012-12-16
        • 2020-07-22
        • 2020-01-02
        • 2020-04-14
        • 1970-01-01
        • 2021-08-24
        • 1970-01-01
        • 2015-02-15
        • 2018-10-23
        相关资源
        最近更新 更多