微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以 0 成本测试 Cloudformation 模板

如何解决以 0 成本测试 Cloudformation 模板

CF 模板主要依赖 AWS 云进行测试,为了测试 CF,我们推出了 CF 堆栈,这导致云成本很高。

我正在寻找一种可以优化 CF 模板运行/测试的解决方案。有人可以提供一个解决方案来运行 cloudformation 模板并在不实际启动资源的情况下对其进行测试。

解决方法

这个问题有几个不同的答案,具体取决于您所指的成本和测试。

CloudFormation 成本

AWS CloudFormation Pricing 中所述,CloudFormation 本身是免费的,但

您为使用 AWS CloudFormation 创建的 AWS 资源(例如 Amazon EC2 实例、Elastic Load Balancing 负载均衡器等)付费,就像您手动创建它们一样

不同的服务有不同的价格模型,例如对于 Lambda,您按使用付费,EC2 为每个运行的实例,S3 用于存储以及“数据输出”,IAM 角色是免费的等,但您必须查找实际每项特定服务的成本。使用 CloudFormation,您可以选择部署您的堆栈,执行您开发的集成测试,然后删除您的堆栈,这样您只需为堆栈运行的时间付费,从而降低成本。方法的一个缺点是部署和删除堆栈时可能会出现明显延迟。此延迟将持续多长时间再次取决于您在堆栈中配置的服务类型。

在本地部署资源

如果您不想使用实际的 AWS 资源,您可能会发现 LocalStack 很有趣。它允许您在本地容器中使用“云”资源。这对您来说可能可行,也可能不可行,因为并非所有 AWS 资源都受支持。

静态 CloudFormation 验证

对于静态验证,即确保 CloudFormation 具有正确的 YAML 或 JSON 语法、引用正确等,有(至少)两个工具。首先,aws cloudformation validate-template 命令是 AWS CLI 的一部分。此外,您还可以使用 cfn-lint。我发现它们是一个很好的补充,并在开发 CloudFormation 模板时减少了周转时间,因为它们会在尝试部署所有资源之前捕获拼写错误、配置错误类似类型的问题,但由于没有创建资源,因此您不会发现诸如丢失之类的问题IAM 权限、应用程序代码故障等,直到您部署真实的东西。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。