使用 AWS CDK 为 RDS 实例设置 cfn 删除策略

Set cfn deletion policy for RDS instance using AWS CDK

我有一个包含 RDS 实例的 CDK 堆栈。我想确保数据库实例永远不会被删除。我不知道如何通过 CDK 设置删除策略。

看来我可以这样设置删除保护:

this.database = new rds.DatabaseInstanceFromSnapshot(this, 'backendAPIDatabase', {
  snapshotIdentifier: this.props.snapshotIdentifier,
  instanceIdentifier: this.props.environmentName,
  engine: rds.DatabaseInstanceEngine.POSTGRES,
  instanceClass: this.props.databaseInstanceSize,
  vpc: this.vpc,
  multiAz: this.props.databaseMultiAz,
  enablePerformanceInsights: true,
  parameterGroup,
  allocatedStorage: this.props.allocatedDatabaseStorage
});

(this.database.node.defaultChild as rds.CfnDBInstance).deletionProtection = true;

但我不知道如何应用删除策略作为第二个备份。

您可以使用 removalPolicy 属性 进行设置。您还应该通过构造函数设置删除保护,如下所示。

this.database = new rds.DatabaseInstanceFromSnapshot(this, 'backendAPIDatabase', {
    ...,
    deletionProtection: true,
    removalPolicy: cdk.RemovalPolicy.RETAIN
});