CloudFormation-手动删除堆栈中的资源并更新

时间:2020-01-30 20:57:44

标签: amazon-web-services amazon-cloudformation

Cloudformation服务使用template.yaml创建了具有三个s3存储桶的堆栈。

我手动删除了一个s3资源。

假设堆栈名称为stack1


在此update_procedure之后,再次运行(不变)栈名称为template.yaml的同一stack1

CloudFormation服务是否更新同一堆栈?接着就,随即 丢失的存储桶....在我的情况下,它没有更新为缺少的s3存储桶

1 个答案:

答案 0 :(得分:1)

您不能在同一区域中创建两个具有相同名称的堆栈。如果要在另一个区域中执行此操作,则会创建您删除的存储桶,但无法创建其他存储桶,所有这些都假设您在模板中命名了存储桶。如果我们没有命名存储桶(因此CloudFormation为您创建了名称),它将创建所有三个存储桶,但是名称将与以前不同。

当您告诉CloudFormation创建堆栈时,它不会更新堆栈。

编辑: 根据您更新的问题,似乎您正在询问是否将重新创建存储桶。答案是否定的。 CloudFormation看到您所请求的内容没有任何变化,因此未采取任何措施。事实上,您在更新时会出现错误,说出“无变化”。

上面的“否”有例外,但是出于您的目的,我认为这已经足够了。

对您而言,最简单的解决方案是从模板中删除您删除的S3存储桶,运行更新(即使已删除它也会“删除”它),然后将其重新添加到模板中并进行更新再次。这将导致它再次被创建。

如果您担心将来会发生这种情况,请考虑将漂移检测与CloudFormation一起使用。