【问题标题】:How do I undo an AWS stack rollback?如何撤消 AWS 堆栈回滚?
【发布时间】:2016-08-01 11:14:39
【问题描述】:

我一直在遵循这些说明。 https://cloudonaut.io/serverless-image-resizing-at-any-scale/

我想创建一个堆栈,将图像保存在一个 S3 存储桶中,调整它们的大小并将它们保存到另一个存储桶。我按照说明进行操作,效果很好,只是它创建了几个我不想要的桶。我想我会删除它们,回滚堆栈并从头开始。回滚很顺利。

我创建了一个新堆栈,但现在当我检查新堆栈状态时,我在 AWS CLI 中收到以下消息:

[
    "ROLLBACK_COMPLETE"
]

我尝试创建具有不同名称的堆栈,但所有堆栈都具有相同的状态。

有什么想法吗?是否可以取消回滚回滚?是否可以删除对该堆栈的所有引用以便我可以创建一个新的?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudfront aws-lambda


    【解决方案1】:

    无法取消回滚。

    您可以做的是将您的 CloudFormation 模板更新到您想要的状态,然后更新您的堆栈。这会将堆栈“向前”移动到所需的状态。

    您可以使用 AWS 管理控制台或使用 aws cloudformation delete-stack CLI 命令完全删除堆栈。

    http://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-stack.html

    这将允许您创建一个具有相同名称的新堆栈。

    请注意,删除堆栈将删除该堆栈创建的所有资源,包括您的 S3 存储桶等。

    另外,为了成功删除 s3 存储桶,存储桶需要完全为空。因此,请在删除堆栈之前清空所有 S3 存储桶。

    【讨论】:

    • 所以,我经历了删除堆栈的整个过程。最后,当我检查堆栈的状态时,它说堆栈不存在。我从一开始就开始创建堆栈,但是在创建堆栈之后,当我查看状态为“回滚完成”时。并且图像调整大小不起作用。
    • 为什么会回滚?如果新堆栈正在回滚,那么它就有问题。也许有些事情是矛盾的。检查堆栈的事件以查看错误。
    【解决方案2】:

    所以,我找到了解决方案。我按照 Sulayman Touray 的建议检查了控制台。当我检查它时,我发现脚本会失败,开始回滚它开始进行的更改,然后将其删除。当我检查状态时,它说“正在回滚”,因为那时它正在回滚。如果我再等 20 分钟,我会看到回滚完成并且堆栈将不再存在。

    至于是什么导致它失败。这是一件很愚蠢的事情。我在 S3 的北美实例上创建了存储桶。这将允许我使用大写字母(大写)。我可以手动创建大写字母的存储桶。当我尝试使用 CLI 创建存储桶时,它还允许我创建大写的存储桶。但是,当脚本尝试创建大写存储桶时,它失败了,因为不允许使用大写字符。一旦我删除了大写字母,它就会毫无困难地创建堆栈。

    我不知道为什么脚本会因此而失败,它就是这样。但是,我现在可以使用小写字母,这对我来说已经足够了。 :)

    【讨论】:

      【解决方案3】:

      我看到一个答案通过 cli 解释了如何去做,但这里是您可以从控制台执行的更好的操作,因为您无法取消删除堆栈,您可以单击控制台上已删除的堆栈并突出显示模板的选项卡这将向您显示您使用的所有注入值的完整 cloudformation 模板,以便您可以复制它并再次重新生成堆栈。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-04
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多