Amazon cloudformation AWS RDS堆栈更新始终替换DB群集

Amazon cloudformation AWS RDS堆栈更新始终替换DB群集,amazon-cloudformation,amazon-rds,amazon-aurora,Amazon Cloudformation,Amazon Rds,Amazon Aurora,我首先使用带有云形成模板的群集快照恢复了Aurora RDS群集。然后删除快照标识符,更新密码,并执行堆栈更新,使CFT中的所有内容保持不变。但是stack总是打印 请求的更新需要创建新的物理资源; 因此创造了一个 消息并开始创建新群集。这是我对集群的CFT "DatabaseCluster": { "Type": "AWS::RDS::DBCluster", "DeletionPolicy": "Snapshot", "Properties": { "BackupReten

我首先使用带有云形成模板的群集快照恢复了Aurora RDS群集。然后删除快照标识符,更新密码,并执行堆栈更新,使CFT中的所有内容保持不变。但是stack总是打印

请求的更新需要创建新的物理资源; 因此创造了一个

消息并开始创建新群集。这是我对集群的CFT

"DatabaseCluster": {
  "Type": "AWS::RDS::DBCluster",
  "DeletionPolicy": "Snapshot",
  "Properties": {
    "BackupRetentionPeriod": {
      "Ref": "BackupRetentionPeriod"
    },
    "Engine": "aurora-postgresql",
    "EngineVersion": {
      "Ref": "EngineVersion"
    },
    "Port": {
      "Ref": "Port"
    },
    "MasterUsername": {
      "Fn::If" : [
        "isUseDBSnapshot",
        {"Ref" : "AWS::NoValue"},
        {"Ref" : "MasterUsername"}
      ]
    },
    "MasterUserPassword": {
      "Fn::If" : [
        "isUseDBSnapshot",
        {"Ref" : "AWS::NoValue"},
        {"Ref" : "MasterPassword"}
      ]
    },
    "DatabaseName": {
      "Fn::If" : [
        "isUseDBSnapshot",
        {"Ref" : "AWS::NoValue"},
        {"Ref" : "DBName"}
      ]
    },
    "SnapshotIdentifier" : {
      "Fn::If" : [
        "isUseDBSnapshot",
        {"Ref" : "SnapshotIdentifier"},
        {"Ref" : "AWS::NoValue"}
      ]
    },
    "PreferredBackupWindow": "01:00-02:00",
    "PreferredMaintenanceWindow": "mon:03:00-mon:04:00",
    "DBSubnetGroupName": {"Ref":"rdsDbSubnetGroup"},
    "StorageEncrypted":{"Ref" : "StorageEncrypted"},
    "DBClusterParameterGroupName": {"Ref" : "RDSDBClusterParameterGroup"},
    "VpcSecurityGroupIds": [{"Ref" : "CommonSGId"}]
  }
}
根据MasterUserPassword,更新不需要更换群集


我的CFT有什么问题吗?或者这是AWS的问题吗?

如果您只想更新数据库实例的密码,则不应删除快照标识符。我知道,如果正在恢复快照,您可能会担心数据丢失

然而,云层形成并非如此。Cloudformation会精确检查您所做的更改并执行相关操作。如果您只是更改密码,那么它将不会篡改您的数据-无论它处于何种状态

但是,如果删除快照标识符,则表示要更改数据库并从中删除快照。因此,它将替换您的DB实例

有关更改每个参数时发生的情况的更多详细信息,请查看下面的链接。

它明确规定,快照标识符中的任何机会都将导致替换