我通过无服务器在AWS中创建了一个RDS。 首先它没有加密,所以我拍摄了rds实例的手动快照,并从中创建了加密快照。
现在无服务器我改变如下。 1.我从aws堆栈中删除了rds实例(在RDS实例上添加了一个条件并重新设计了没有rds的模板) 2.现在我正在使用DBSnapshotIdentifier重新部署数据库。 3.现在,如果我尝试使用DBSnapshotIdentifier重新运行堆栈,它就会失败。
我的问题是,如果我们每次需要提供DBSnapshotIdentifier时都会使用它吗?
注意:我创建了一个新的堆栈,但没有提供DBSnapshotIdentifier。 我重新运行部署而没有提供它正在运行的DBSnapshotIdentifier。 以上情况我也猜相似。
请仔细阅读下面的yaml,你会明白我在rds上做了什么
createRDSInstance:用于从模板创建或删除rds。(来自堆栈)
dbSnapshot:它用于部署快照或简单更新的方式
testCrid:
Type: "AWS::RDS::DBInstance"
DependsOn: "testVPC"
Condition: createRDSInstance
Properties:
DBInstanceIdentifier: "Crid-${self:custom.arguments.stage}"
DBName:
Fn::If: [ dbSnapshot, "${self:custom.arguments.database}", Ref: "AWS::NoValue" ]
Engine: "MySQL"
EngineVersion: "5.7.16"
DBInstanceClass: ${self:custom.arguments.dbInstanceClass}
MasterUsername: test
MasterUserPassword: ${self:custom.arguments.password}
PubliclyAccessible: ${self:custom.arguments.public}
DBParameterGroupName:
Ref: "CridParameterGroup"
VPCSecurityGroups:
- Ref: "PrivateSubnetDBSecurityGroup"
DBSubnetGroupName:
Ref: "CridSubnetGroup"
AllocatedStorage: '5'
StorageType: "gp2"
StorageEncrypted: true
MultiAZ: true
DBSnapshotIdentifier:
Fn::If: [ dbSnapshot, Ref: "AWS::NoValue","${self:custom.arguments.dBSnapshotIdentifier}"]