AWS 云形成;将模板分解为多个文件并使用 cfn-include 传递变量

Joh*_*vid 6 yaml amazon-web-services aws-cloudformation

我的 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
Run Code Online (Sandbox Code Playgroud)

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

- !include ./templates/api-lambdas/accounts/yaml, variables: {database: databaseName, environment: staging}
Run Code Online (Sandbox Code Playgroud)

account.yaml 看起来像这样:

Environment:
 Variables:
  ENV: ${environment}
  DB_NAME: ${databaseName}
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 2

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