我使用 CloudFormation 部署了一个启用了多可用区的 RDS PostgreSQL 数据库实例。当我尝试删除多可用区时,CloudFormation 出现以下错误:
当自定义名称的资源需要替换时,CloudFormation 无法更新堆栈。重命名并再次更新堆栈。
我在资源模板中更改的唯一参数是MultiAZ
(从设置true
为false
)和AvailabilityZone
(从无值设置为固定)。云形成文档指出这两个参数都不需要资源替换,只需要“一些中断”。因此以下内容不适用于我的用例:
数据库实例标识符
[...]
如果指定名称,则无法执行需要替换此资源的更新。您可以执行不需要中断或需要一些中断的更新。如果必须替换资源,请指定新名称。
问题是什么?
答案1
问题出在AvailabilityZone
参数上。更新它似乎需要替换资源,这与文档中写的内容相反。我通过从模板中删除参数解决了这个问题。