繁体   English   中英

用于多个参数文件和单个模板的 CloudFormation

[英]CloudFormation for multiple parameter files and a single template

我目前将所有参数存储在 Systems Manager Parameter Store 中,并在 CloudFormation 堆栈中引用它们。

我现在陷入了同一个 Cloudformation 模板的参数不同的场景。

例如服务器 A,具有参数 m5.large 实例类型、su.net 1、主机名 1,同样服务器 B 可以具有 m5.xlarge、su.net 2、主机名 2 等。 这 2 个参数用于相同的 CFN 模板。

我如何以 CI/CD 方式处理这种情况?

我当前的设置涉及 SSM Parameter store -> CloudWatch Events -> CodePipeline -> Cloudformation。

我假设您使用 AWS CodePipeline。 每个 CodePipeline 阶段由多个阶段操作组成。 动作配置属性之一是 CloudFormation 模板,也可以配置动作以包含 CloudFormation 模板,还可以提供模板配置 如果您将服务器名称定义为 CloudFormation 堆栈中的参数,则可以为每个 CloudFormation 参数提供不同的配置。

假设您只在 CloudFormation 堆栈中定义一个服务器并在代码管道中使用该模板两次,那么您可以为两个阶段操作提供不同的配置。 基于此配置,您可以决定要检索参数存储中的哪个参数。 当然,这意味着您的参数存储也应该被参数化,例如,您可能有参数 servera/ servera/instancetypeserverb/instancetype而不是参数instancetype

但是,我认为最好只在提供给操作声明的模板配置文件中定义参数。 因此,例如在您的 CloudFormation 模板中定义参数instancetype并使用两个不同的配置文件(每个堆栈一个),其中第一个模板配置文件可能instancetype: m5.large和第二个配置文件instancetype: m5.xlarge 这使您的 CloudFormation 堆栈历史更加明确、更易于阅读,并且不再需要为非机密使用参数存储。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM