如何在AWS Cloudformation更新期间确保资源删除/创建顺序

时间:2018-09-11 05:22:45

标签: amazon-web-services amazon-cloudformation

我的用例是,我们已经有一个基于AWS Cloudformation创建的堆栈。

现在,我想更新该堆栈,我的要求是要删除已经创建的资源并添加新的修改后的资源,但是我想确保删除发生在创建部件之前。

我探索了dependsOn,但这可以帮助我设置资源创建的顺序。不能确保删除和创建顺序(或者至少找不到我找不到的东西)

如何在进行cloudformation更新时确保在创建资源之前发生资源删除

2 个答案:

答案 0 :(得分:0)

我了解您想要

  

删除已创建的资源并添加新的修改后的资源   资源

以下是我的理解,请告诉我是否有帮助,

在单个CloudFormation部署中删除和创建具有相同资源名称/依赖关系的资源非常棘手。

最简单的方法:

  1. 首先部署CFN模板以删除资源,即删除代码 从模板开始,然后添加新的资源/已修改的资源。在做的时候 您需要检查“保留政策”是否到位,因为如果 您保留的已删除资源比CloudFormation不会 再次创建相同的资源。
  2. 比部署CFN模板创建/修改资源

其他方法可能是:

  1. 如果您要确保在创建新资源之前将其删除, 在一个模板中,您可能需要创建一个嵌套堆栈 用于资源删除和资源创建
  2. 并添加对删除cloudFormation模板的依赖性,即 创建资源模板将取决于删除资源模板。 还有 AWS :: CloudFormation :: WaitCondition ,可以是 在这里使用。

我想无论如何,如果您尝试在已删除/正在删除的资源上创建/修改,您都会收到错误消息

答案 1 :(得分:0)

除非将操作分为两个步骤,否则没有其他选择:

  1. 您将需要使用当前模板来更新堆栈,仅更改稍后将要修改的资源的名称。

  2. 更新堆栈-上载修改后的新模板-但请记住将资源名称设置为先前的值。