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

标签 amazon-web-services aws-cloudformation

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

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

假设堆栈名称为stack1


再次运行相同的template.yaml(不变),堆栈名称为stack1,遵循此update_procedure

CloudFormation 服务是否更新相同的堆栈?接着就,随即 缺少存储桶....在我的情况下,它不会因缺少 s3 存储桶而更新

最佳答案

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

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

编辑: 根据您更新的问题,您似乎在询问是否会重新创建存储桶。答案是否定的。 CloudFormation 发现您所要求的内容没有任何变化,因此不会采取任何操作。事实上,您在更新时应该会收到错误消息,提示类似“无更改”的内容。

上述“不”也有异常(exception),但对于您在此的目的,我认为这已经足够了。

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

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

关于amazon-web-services - CloudFormation - 手动删除堆栈中的资源并更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59994407/

相关文章:

amazon-web-services - 从/到 s3 的 elasticsearch 备份/恢复 - 注册错误(存储库异常)

amazon-web-services - CodePipeline 无法找到 SAM 模板 yaml 文件

amazon-web-services - 删除导出变量并帮助消除循环依赖

amazon-web-services - AWS::CloudFormation::Init yum 更新失败

amazon-web-services - 有没有办法从 CFT 中的 DNS 名称获取 HostedZoneId?

amazon-web-services - 如何直接从请求映射器返回?

javascript - while(true) 循环中的 promise /等待 promise 解决

amazon-web-services - 如何命名使用 cloudformation 模板创建的自定义托管策略

amazon-web-services - 使用 CloudFormation 创建 RDS 数据库实例时是否可以运行初始 SQL?

java - 如何配置连接到 AWS EMR spark 集群的 Java 客户端