AWS CloudFormation创建堆栈与部署

nix*_*ind 17 amazon-web-services aws-cloudformation aws-cli

有人可以清楚地向我解释AWS CLI Cloudformation create-stackdeploy命令之间的区别和优先级吗?对我来说,似乎他们做同样的事情并部署资源.

为什么当您从cli运行deploy命令时,create stack没有可执行的更改集,而文档说:

通过创建并执行更改集来部署指定的AWS CloudFormation模板.AWS CloudFormation执行更改集后,该命令将终止.如果要在AWS CloudFormation执行更改集之前查看更改集,请使用--no-execute-changeset标志.

chr*_*ris 20

create-stack只有在您知道要创建新堆栈时才能使用.如果要更新堆栈,则必须使用其他命令等.如果您正在编写(ug)批处理文件以帮助运行您的cloudformation,这可能会非常痛苦.

deploy是更好地利用变更集的功能 - 而不是必须知道堆栈是否存在,您可以简单地运行部署,工具将弄清楚它需要做什么.有了它--no-execute-changeset,它实际上会为您提供所需的命令,如果您决定在应用它们之前查看更改.

看起来这是在2016年11月推出的,可能是在发布变更集的时候.


Kir*_*rst 5

我认为deploy仅仅是“语法糖”的周围CreateChangeSetCreateStackUpdateStackAPI方法。

请注意,尽管deploy它在CLI中,但不在API参考中

我认为,deploy在任何需要明确检查变更集的情况下,这都是首选方法。如果不使用deploycreate-change-set则可能需要决定是创建还是更新堆栈。在这种情况下,部署就像一个堆栈“ upsert”。


我不再懒惰并检查代码,是的- deploy最终是从CLI使用cloudformation的更好的方法。实现在这里这里。需要注意的是今天的能力控制回滚行为不存在为deploy这一问题