web-dev-qa-db-ja.com

AWS CloudFormation create-stack vs deploy

誰かがAWS CLI Cloudformationcreate-stackおよびdeployコマンド?私にとっては、彼らは同じことをして、リソースを展開しているようです。

Cliからdeployコマンドを実行すると、作成スタックには実行可能な変更セットがありませんが、ドキュメントには次のように記載されています。

変更セットを作成して実行することにより、指定されたAWS CloudFormationテンプレートをデプロイします。 AWS CloudFormationが変更セットを実行すると、コマンドは終了します。 AWS CloudFormationが実行する前に変更セットを表示するには、-no-execute-changesetフラグを使用します。

15
nixmind

create-stackは、新しいスタックを作成することがわかっている場合にのみ使用できます。スタックを更新する場合は、別のコマンドなどを使用する必要があります。cloudformationの実行を支援するために(ug)バッチファイルを作成している場合、これは非常に苦痛です。

deployは、変更セットをより活用するための機能です。スタックが存在するかどうかを知る必要はなく、単にdeployを実行するだけで、ツールは何をする必要があるかを判断します。とともに --no-execute-changeset、実際に変更を適用する前に変更を確認したい場合に必要なコマンドを提供します。

これはおそらく変更セットがリリースされた頃の2016年11月に導入されたようです。

18
chris

deployは、CreateChangeSetCreateStack、およびUpdateStackのapiメソッドを囲む「構文の砂糖」であると想定しています。

deployはCLIにあります ですが、 APIリファレンスにはない であることに注意してください。

変更セットを明示的に確認する必要がない限り、deployの方が好ましいと思います。 deployを使用しないと、潜在的にcreate-change-setその後、スタックを作成するか更新するかを決定します。この場合、デプロイは「アップサート」スタックのようなものです。


私は怠beingなことをやめてコードをチェックしました。そうです-deployは最終的にはCLIからcloudformationを使用するより良い方法です。実装は here および here です。現在、ロールバックの動作を制御する機能は、 この問題 ごとにdeployに対して存在しないことに注意してください。

5
Kirk Broadhurst