AWS Cloudformation:用于呈现模板的 CLI 工具

AWS Cloudformation:用于呈现模板的 CLI 工具

给定一个包含对内部函数的调用和潜在引用参数的 AWS 模板,是否有一个 CLI 工具允许传递参数值并生成相应的模板文件?

例如,来自

{
  "Resource" : { "Fn::Join" : [ "", [ "xxx-" , { "Ref": "SomeParam" }, "-zzz" ] ] } 
}

提供SomeParam有价值bar,你应该得到一个可读的文本文件:

{
 "Resource" : "xxx-bar-yyy"
}

我看了各种aws cloudformation 子命令(我曾抱有希望verify-template,但没有成功……

(理由:创建/更新堆栈需要很长时间,而且我没有足够的脑力在第一次就正确获取云信息文件。或者,n就此而言,第一次因为太高的值而失败n。)

答案1

CloudFormation 本身目前不具备您描述的功能。Amazon 已承认类似命令--dry-run的功能create-stack会很有用,例如此线程:

https://forums.aws.amazon.com/thread.jspa?threadID=122514

建议的解决方法:

  1. 将堆栈拆分成更小的块(嵌套),然后独立运行它们以加快测试迭代速度。这并不适用于所有用例,并且仍然受 CloudFormation API/引擎性能低下的影响。

  2. 尝试moto- 一个专门用于测试的模仿 AWS API 的 Python 库 - 它似乎已经实现了核心 CloudFormation API,尽管我实际上并没有专门将此库用于 CFN,所以 YMMV。

    https://github.com/spulec/moto

  3. 如果你还没有了解过 Terraform,它有以下概念:执行计划,通过terraform plan基本上执行您所描述的操作的命令,但是针对的是 Terraform 堆栈。

    https://www.terraform.io/intro/vs/cloudformation.html

答案2

create-change-set可能是最接近的:问题是像Ref和这样的函数Fn::GetAttr只能在堆栈运行后才存在的资源上调用(即它如何告诉您将使用哪个实例 ID 创建您的实例?)

相关内容