我正在编写我的第一个 CF 堆栈,当然,第一次尝试时会遇到部署失败,因为我还不完全了解语法和可用参数。我正在通过 CLI 验证我的 json 和模板本身,但它仍然会在部署时遇到问题并导致回滚或失败。现在,当它是一个全新的堆栈而不是更新时,部署就会失败,我无法更新它,我必须完全销毁堆栈并重新部署它。
我想知道该如何解决这个问题。即使删除的堆栈不在控制台中,CLI 仍会列出之前创建和销毁的所有堆栈,而且它并不干净。当然,在修复导致堆栈失败的问题后,我无法更新堆栈,因为它处于失败状态,我必须重新部署所有内容,就像它是一个全新的堆栈一样。
对此有什么想法吗?您是如何创建第一个堆栈的?
答案1
第一次“创建”堆栈需要成功,否则必须删除。以后的更新可能会失败并回滚,而无需删除堆栈。我倾向于在控制台中删除,但您当然可以使用“aws cloudformation delete-stack”。
我不想在 CLI 中列出堆栈,我只是使用控制台,所以我不知道它显示什么。一旦删除堆栈,您就可以再次创建它。您可以使用以下命令检测该状态
aws cloudformation wait stack-delete-complete --profile profilename --stack-name stack-name
对您来说,关键在于部署一个您知道会部署的简单堆栈,然后稍后添加复杂性。您可以通过注释掉除要部署的一个资源之外的所有内容来做到这一点,您可以从 AWS 示例中复制并粘贴该资源。Visual Studio Code 使用“Control - Shift - /”组合来注释/取消注释大块,从而使此操作变得简单。
您应该考虑使用 YAML 格式的 CloudFormation,我发现它更容易。