我正在尝试使用 cloudformation 模板为 postgres 创建 RDS 数据库集群。
我收到此错误,其中指出:“给定的输入与预期格式不匹配”。
我摸不着头脑,不明白我的 cloudformation 模板出了什么问题。 这是我的模板。
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: !Join ['', ['{{resolve:secretsmanager:', !Ref MyDBMasterSecret, ':secretString:username}}']]
MasterUserPassword: !Join ['', ['{{resolve:secretsmanager:', !Ref 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
ScalingConfiguration:
AutoPause: true
MinCapacity: 2
MaxCapacity: 8
SecondsUntilAutoPause: 900
任何帮助将不胜感激。
解决方案。当您使用动态引用从CloudFormation中的Secrets管理器检索机密时,您必须使用此模式:
{{resolve:secretsmanager:secret-id:SecretString:json-key:version-stage:version-id}}
您需要注意它区分大小写。这就是为什么将
secureString
更改为 SecureString
解决了问题。