我的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}
谢谢!
答案 0 :(得分:0)
也许您想尝试一下嵌套堆栈(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) 通常,当文件太大而无法读取时,它们可能很快就会达到最大模板大小限制。 在那里,您可以轻松,以键入的方式将根文件中拥有的所有参数传递给子堆栈。
答案 1 :(得分:0)
还有另一种选择:cfpack.js工具。它允许您将巨大的模板拆分为较小的模板,这些模板将合并为一个模板并部署到CloudFormation堆栈中。