使用CloudFormation创建Aurora PostgreSQL DB集群时遇格式不匹配错误求助
问题排查与修复
你的CloudFormation模板创建Aurora PostgreSQL集群失败的核心原因是参数冲突:
- 你将
EngineMode设置为provisioned(预配置模式),但同时添加了ScalingConfiguration配置块——这个配置仅适用于Aurora Serverless模式(serverless引擎模式),预配置模式不支持该参数,这直接导致了输入格式不匹配的错误。
另外还有两处可以优化的细节:
DBClusterIdentifier的!Sub语法建议加上引号,避免潜在的格式解析问题MasterUsername和MasterUserPassword的Secrets Manager引用可以简化,无需用!Join拼接字符串
修改后的模板代码
MyDBCluster: Type: AWS::RDS::DBCluster Properties: AvailabilityZones: - !Sub "${AWS::Region}a" - !Sub "${AWS::Region}b" - !Sub "${AWS::Region}c" BackupRetentionPeriod: 7 DatabaseName: "MyDB" DBClusterIdentifier: !Sub "${AWS::StackName}-db-cluster" DBClusterParameterGroupName: "default.aurora-postgresql13" DBSubnetGroupName: !Ref MyDBSubnetGroup Engine: aurora-postgresql EngineVersion: '13.8' Port: 5432 MasterUsername: !SecretsManager "${MyDBMasterSecret}:SecretString:username" MasterUserPassword: !SecretsManager "${MyDBMasterSecret}:SecretString:password" PreferredBackupWindow: '10:21-10:51' PreferredMaintenanceWindow: 'thu:03:03-thu:03:33' VpcSecurityGroupIds: - !Ref MyDBSecurityGroup StorageEncrypted: true KmsKeyId: !Ref MyDBKmsKey EnableIAMDatabaseAuthentication: false EngineMode: 'provisioned' DeletionProtection: true EnableHttpEndpoint: false
额外说明
如果你确实需要自动扩缩容能力,应该将EngineMode改为serverless,并保留ScalingConfiguration,但注意Serverless模式对参数组有特定要求,需要将DBClusterParameterGroupName调整为serverless兼容的参数组(比如default.aurora-postgresql13-serverless)。
内容的提问来源于stack exchange,提问作者Ishan
相关产品推荐
相关产品推荐

