新手使用CloudFormation创建Postgres DB遇输入格式不匹配报错求助
CloudFormation创建PostgreSQL RDS报错"Given input did not match expected format"排查方案
该报错的核心原因是模板中RDS资源的属性值/参数格式不符合AWS RDS服务的规范要求,高频出错点及修复方案如下:
- 参数值拼写/类型不匹配:检查
DBInstanceClass、AllocatedStorage等必填参数,例如实例规格需严格使用RDS支持的规格名(如db.t3.micro,不要出现拼写错误),存储容量需输入合法数字,PostgreSQL通用存储最小为20GB,数值超出范围或输入非数字内容都会触发格式错误。 - 标识符格式不符合规范:
DBInstanceIdentifier参数仅支持小写字母、数字、连字符,不能以连字符开头/结尾、不能连续使用连字符,长度最大为63个字符,不符合要求会直接触发格式校验失败。 - 账号凭证格式错误:
MasterUsername首字符必须为字母,仅支持字母、数字、下划线,不能使用RDS保留字;MasterUserPassword长度需在8-128位之间,不能包含/、"、@三类特殊字符。 - 引擎版本格式错误:
EngineVersion需使用RDS支持的PostgreSQL版本号,格式为大版本.小版本,例如14.7、15.3,不要输入多余的版本段(如14.7.0)。 - 关联资源标识格式错误:检查
VpcSecurityGroupIds、DBSubnetGroupName等参数,输入的安全组ID、子网组名称需符合AWS资源标识的格式要求,不存在格式错位或拼写错误。
快速验证步骤
- 本地使用
cfn-lint工具校验模板,执行命令cfn-lint 模板文件名.yaml,可直接定位到格式错误的具体行和对应属性。 - 首次排查可先注释所有非必填属性,仅保留必填的核心属性尝试部署,确认基础格式正确后再逐步添加其他配置。
合法最小配置参考模板
Resources: MyPostgresDB: Type: AWS::RDS::DBInstance Properties: DBInstanceIdentifier: my-postgres-db-01 Engine: postgres EngineVersion: "14.7" DBInstanceClass: db.t3.micro AllocatedStorage: 20 MasterUsername: dbadmin MasterUserPassword: TestPassw0rd! PubliclyAccessible: false
注意:JSON格式模板中数字类型的属性(如
AllocatedStorage)不要添加引号,否则会因类型不匹配触发格式错误。
内容的提问来源于stack exchange,提问作者N.Nqeketo
相关产品推荐
相关产品推荐

