CloudFormation模板:以代码形式持续测试基础架构

Gle*_*iko 5 continuous-integration amazon-web-services continuous-testing aws-cloudformation infrastructure-as-code

在项目中,我们使用一些AWS服务,例如AWS Lambda,EC2,AWS API Gateway,ElastiCache等。此外,我们还有CloudFormation模板,该模板描述了整个基础架构。随着项目的开发,我们开始使用一些新的AWS服务或更改一些已使用的服务的配置。此外,我们还应该使CloudFormation模板保持最新。

在这里,我们面临一个问题,我们需要确保我们的CloudFormation模板有效,正确,并且在需要时可以使用它来创建基础架构。在这种情况下,我们需要对模板进行连续测试。哪种方法更合适?

我们是否应该在持续集成过程中从CloudFormation模板配置自动创建堆栈,并跟踪存储库中的模板更改?还是有更好的解决方案?

小智 1

您可以使用aws cloudformation validate-template CLI 命令对 CloudFormation 模板进行一些简单的验证。这大致相当于其他语言的静态代码分析:它检查参数名称拼写错误等内容以及模板在语法上是否有效的 JSON/YAML;但在它可以执行的验证方面非常有限。

正如该文章所述,检查 CloudFormation 模板是否按照您想要/期望的方式创建资源的唯一可靠方法就是尝试它,这确实意味着将创建堆栈作为 CI 和测试过程的一部分。由于这在某些资源的情况下可能会很慢,而在其他资源的情况下可能会很昂贵,因此您可能希望限制执行完整堆栈创建测试的提交。