Skip to content
v2.274.0

BackupResource Class ​

A resource to backup.

Example ​

ts
declare const plan: backup.BackupPlan;
declare const vpc: ec2.Vpc;
const myTable = dynamodb.Table.fromTableName(this, 'Table', 'myTableName');
const myDatabaseInstance = new rds.DatabaseInstance(this, 'DatabaseInstance', {
  engine: rds.DatabaseInstanceEngine.mysql({ version: rds.MysqlEngineVersion.VER_8_0_26 }),
  vpc,
});
const myDatabaseCluster = new rds.DatabaseCluster(this, 'DatabaseCluster', {
  engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_2_08_1 }),
  credentials: rds.Credentials.fromGeneratedSecret('clusteradmin'),
  instanceProps: {
    vpc,
  },
});
const myServerlessCluster = new rds.ServerlessCluster(this, 'ServerlessCluster', {
  engine: rds.DatabaseClusterEngine.AURORA_POSTGRESQL,
  parameterGroup: rds.ParameterGroup.fromParameterGroupName(this, 'ParameterGroup', 'default.aurora-postgresql11'),
  vpc,
});
const myCoolConstruct = new Construct(this, 'MyCoolConstruct');

plan.addSelection('Selection', {
  resources: [
    backup.BackupResource.fromDynamoDbTable(myTable), // A DynamoDB table
    backup.BackupResource.fromRdsDatabaseInstance(myDatabaseInstance), // A RDS instance
    backup.BackupResource.fromRdsDatabaseCluster(myDatabaseCluster), // A RDS database cluster
    backup.BackupResource.fromRdsServerlessCluster(myServerlessCluster), // An Aurora Serverless cluster
    backup.BackupResource.fromTag('stage', 'prod'), // All resources that are tagged stage=prod in the region/account
    backup.BackupResource.fromConstruct(myCoolConstruct), // All backupable resources in `myCoolConstruct`
  ]
})
python
# plan: backup.BackupPlan
# vpc: ec2.Vpc

my_table = dynamodb.Table.from_table_name(self, "Table", "myTableName")
my_database_instance = rds.DatabaseInstance(self, "DatabaseInstance",
    engine=rds.DatabaseInstanceEngine.mysql(version=rds.MysqlEngineVersion.VER_8_0_26),
    vpc=vpc
)
my_database_cluster = rds.DatabaseCluster(self, "DatabaseCluster",
    engine=rds.DatabaseClusterEngine.aurora_mysql(version=rds.AuroraMysqlEngineVersion.VER_2_08_1),
    credentials=rds.Credentials.from_generated_secret("clusteradmin"),
    instance_props=rds.InstanceProps(
        vpc=vpc
    )
)
my_serverless_cluster = rds.ServerlessCluster(self, "ServerlessCluster",
    engine=rds.DatabaseClusterEngine.AURORA_POSTGRESQL,
    parameter_group=rds.ParameterGroup.from_parameter_group_name(self, "ParameterGroup", "default.aurora-postgresql11"),
    vpc=vpc
)
my_cool_construct = Construct(self, "MyCoolConstruct")

plan.add_selection("Selection",
    resources=[
        backup.BackupResource.from_dynamo_db_table(my_table),  # A DynamoDB table
        backup.BackupResource.from_rds_database_instance(my_database_instance),  # A RDS instance
        backup.BackupResource.from_rds_database_cluster(my_database_cluster),  # A RDS database cluster
        backup.BackupResource.from_rds_serverless_cluster(my_serverless_cluster),  # An Aurora Serverless cluster
        backup.BackupResource.from_tag("stage", "prod"),  # All resources that are tagged stage=prod in the region/account
        backup.BackupResource.from_construct(my_cool_construct)
    ]
)
java
BackupPlan plan;
Vpc vpc;

ITable myTable = Table.fromTableName(this, "Table", "myTableName");
DatabaseInstance myDatabaseInstance = DatabaseInstance.Builder.create(this, "DatabaseInstance")
        .engine(DatabaseInstanceEngine.mysql(MySqlInstanceEngineProps.builder().version(MysqlEngineVersion.VER_8_0_26).build()))
        .vpc(vpc)
        .build();
DatabaseCluster myDatabaseCluster = DatabaseCluster.Builder.create(this, "DatabaseCluster")
        .engine(DatabaseClusterEngine.auroraMysql(AuroraMysqlClusterEngineProps.builder().version(AuroraMysqlEngineVersion.VER_2_08_1).build()))
        .credentials(Credentials.fromGeneratedSecret("clusteradmin"))
        .instanceProps(InstanceProps.builder()
                .vpc(vpc)
                .build())
        .build();
ServerlessCluster myServerlessCluster = ServerlessCluster.Builder.create(this, "ServerlessCluster")
        .engine(DatabaseClusterEngine.AURORA_POSTGRESQL)
        .parameterGroup(ParameterGroup.fromParameterGroupName(this, "ParameterGroup", "default.aurora-postgresql11"))
        .vpc(vpc)
        .build();
Construct myCoolConstruct = new Construct(this, "MyCoolConstruct");

plan.addSelection("Selection", BackupSelectionOptions.builder()
        .resources(List.of(BackupResource.fromDynamoDbTable(myTable), BackupResource.fromRdsDatabaseInstance(myDatabaseInstance), BackupResource.fromRdsDatabaseCluster(myDatabaseCluster), BackupResource.fromRdsServerlessCluster(myServerlessCluster), BackupResource.fromTag("stage", "prod"), BackupResource.fromConstruct(myCoolConstruct)))
        .build());
csharp
// Install: dotnet add package Amazon.CDK.Lib
BackupPlan plan;
Vpc vpc;

var myTable = Table.FromTableName(this, "Table", "myTableName");
var myDatabaseInstance = new DatabaseInstance(this, "DatabaseInstance", new DatabaseInstanceProps {
    Engine = DatabaseInstanceEngine.Mysql(new MySqlInstanceEngineProps { Version = MysqlEngineVersion.VER_8_0_26 }),
    Vpc = vpc
});
var myDatabaseCluster = new DatabaseCluster(this, "DatabaseCluster", new DatabaseClusterProps {
    Engine = DatabaseClusterEngine.AuroraMysql(new AuroraMysqlClusterEngineProps { Version = AuroraMysqlEngineVersion.VER_2_08_1 }),
    Credentials = Credentials.FromGeneratedSecret("clusteradmin"),
    InstanceProps = new InstanceProps {
        Vpc = vpc
    }
});
var myServerlessCluster = new ServerlessCluster(this, "ServerlessCluster", new ServerlessClusterProps {
    Engine = DatabaseClusterEngine.AURORA_POSTGRESQL,
    ParameterGroup = ParameterGroup.FromParameterGroupName(this, "ParameterGroup", "default.aurora-postgresql11"),
    Vpc = vpc
});
var myCoolConstruct = new Construct(this, "MyCoolConstruct");

plan.AddSelection("Selection", new BackupSelectionOptions {
    Resources = new [] { BackupResource.FromDynamoDbTable(myTable), BackupResource.FromRdsDatabaseInstance(myDatabaseInstance), BackupResource.FromRdsDatabaseCluster(myDatabaseCluster), BackupResource.FromRdsServerlessCluster(myServerlessCluster), BackupResource.FromTag("stage", "prod"), BackupResource.FromConstruct(myCoolConstruct) }
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
var plan BackupPlan
var vpc Vpc

myTable := dynamodb.Table_FromTableName(this, jsii.String("Table"), jsii.String("myTableName"))
myDatabaseInstance := rds.NewDatabaseInstance(this, jsii.String("DatabaseInstance"), &DatabaseInstanceProps{
	Engine: rds.DatabaseInstanceEngine_Mysql(&MySqlInstanceEngineProps{
		Version: rds.MysqlEngineVersion_VER_8_0_26(),
	}),
	Vpc: Vpc,
})
myDatabaseCluster := rds.NewDatabaseCluster(this, jsii.String("DatabaseCluster"), &DatabaseClusterProps{
	Engine: rds.DatabaseClusterEngine_AuroraMysql(&AuroraMysqlClusterEngineProps{
		Version: rds.AuroraMysqlEngineVersion_VER_2_08_1(),
	}),
	Credentials: rds.Credentials_FromGeneratedSecret(jsii.String("clusteradmin")),
	InstanceProps: &InstanceProps{
		Vpc: *Vpc,
	},
})
myServerlessCluster := rds.NewServerlessCluster(this, jsii.String("ServerlessCluster"), &ServerlessClusterProps{
	Engine: rds.DatabaseClusterEngine_AURORA_POSTGRESQL(),
	ParameterGroup: rds.ParameterGroup_FromParameterGroupName(this, jsii.String("ParameterGroup"), jsii.String("default.aurora-postgresql11")),
	Vpc: Vpc,
})
myCoolConstruct := constructs.NewConstruct(this, jsii.String("MyCoolConstruct"))

plan.AddSelection(jsii.String("Selection"), &BackupSelectionOptions{
	Resources: []BackupResource{
		backup.BackupResource_FromDynamoDbTable(myTable),
		backup.BackupResource_FromRdsDatabaseInstance(myDatabaseInstance),
		backup.BackupResource_FromRdsDatabaseCluster(myDatabaseCluster),
		backup.BackupResource_FromRdsServerlessCluster(myServerlessCluster),
		backup.BackupResource_FromTag(jsii.String("stage"), jsii.String("prod")),
		backup.BackupResource_FromConstruct(myCoolConstruct),
	},
})

Initializer ​

ts
new BackupResource(resource?: string, tagCondition?: TagCondition, construct?: Construct)
python
BackupResource(resource: typing.Optional[str] = None, tag_condition: typing.Optional[TagCondition] = None, construct: typing.Optional[Construct] = None)
java
new BackupResource(String resource, TagCondition tagCondition, Construct construct)
csharp
new BackupResource(string? resource = null, TagCondition? tagCondition = null, Construct? construct = null)
go
NewBackupResource(Resource *string, TagCondition TagCondition, Construct Construct)

Properties ​

constructmay be undefinedConstructconstructmay be undefinedConstructconstructmay be undefinedConstructConstructmay be undefinedConstructConstructmay be undefinedConstruct#
A construct.
resourcemay be undefinedstringresourcemay be undefinedstrresourcemay be undefinedStringResourcemay be undefinedstringResourcemay be undefined*string#
A resource.
tagConditionmay be undefinedTagConditiontag_conditionmay be undefinedTagConditiontagConditionmay be undefinedTagConditionTagConditionmay be undefinedTagConditionTagConditionmay be undefinedTagCondition#
A condition on a tag.

Methods ​

fromArn(arn: string): BackupResource // chainable@staticmethod def from_arn(arn: str) -> BackupResourcepublic static BackupResource fromArn(String arn)public static BackupResource FromArn(string arn)func FromArn(Arn *string) BackupResourcestatic#
A list of ARNs or match patterns such as `arn:aws:ec2:us-east-1:123456789012:volume/*`.
fromConstruct(construct: Construct): BackupResource // chainable@staticmethod def from_construct(construct: Construct) -> BackupResourcepublic static BackupResource fromConstruct(Construct construct)public static BackupResource FromConstruct(Construct construct)func FromConstruct(Construct Construct) BackupResourcestatic#
Adds all supported resources in a construct.
1 parameter

Parameters

  • constructconstructconstructconstructConstruct — The construct containing resources to backup.
fromDynamoDbTable(table: ITableRef): BackupResource // chainable@staticmethod def from_dynamo_db_table(table: ITableRef) -> BackupResourcepublic static BackupResource fromDynamoDbTable(ITableRef table)public static BackupResource FromDynamoDbTable(ITableRef table)func FromDynamoDbTable(Table ITableRef) BackupResourcestatic#
A DynamoDB table.
fromEc2Instance(instance: IInstanceRef): BackupResource // chainable@staticmethod def from_ec2_instance(instance: IInstanceRef) -> BackupResourcepublic static BackupResource fromEc2Instance(IInstanceRef instance)public static BackupResource FromEc2Instance(IInstanceRef instance)func FromEc2Instance(Instance IInstanceRef) BackupResourcestatic#
An EC2 instance.
fromEfsFileSystem(fileSystem: IFileSystemRef): BackupResource // chainable@staticmethod def from_efs_file_system(file_system: IFileSystemRef) -> BackupResourcepublic static BackupResource fromEfsFileSystem(IFileSystemRef fileSystem)public static BackupResource FromEfsFileSystem(IFileSystemRef fileSystem)func FromEfsFileSystem(FileSystem IFileSystemRef) BackupResourcestatic#
An EFS file system.
fromRdsDatabaseCluster(cluster: IDBClusterRef): BackupResource // chainable@staticmethod def from_rds_database_cluster(cluster: IDBClusterRef) -> BackupResourcepublic static BackupResource fromRdsDatabaseCluster(IDBClusterRef cluster)public static BackupResource FromRdsDatabaseCluster(IDBClusterRef cluster)func FromRdsDatabaseCluster(Cluster IDBClusterRef) BackupResourcestatic#
A RDS database cluter.
fromRdsDatabaseInstance(instance: IDBInstanceRef): BackupResource // chainable@staticmethod def from_rds_database_instance(instance: IDBInstanceRef) -> BackupResourcepublic static BackupResource fromRdsDatabaseInstance(IDBInstanceRef instance)public static BackupResource FromRdsDatabaseInstance(IDBInstanceRef instance)func FromRdsDatabaseInstance(Instance IDBInstanceRef) BackupResourcestatic#
A RDS database instance.
fromRdsServerlessCluster(cluster: IDBClusterRef): BackupResource // chainable@staticmethod def from_rds_serverless_cluster(cluster: IDBClusterRef) -> BackupResourcepublic static BackupResource fromRdsServerlessCluster(IDBClusterRef cluster)public static BackupResource FromRdsServerlessCluster(IDBClusterRef cluster)func FromRdsServerlessCluster(Cluster IDBClusterRef) BackupResourcestatic#
An Aurora database instance.
fromTag(key: string, value: string, operation?: TagOperation): BackupResource // chainable@staticmethod def from_tag(key: str, value: str, operation: typing.Optional[TagOperation] = None) -> BackupResourcepublic static BackupResource fromTag(String key, String value, TagOperation operation)public static BackupResource FromTag(string key, string value, TagOperation? operation = null)func FromTag(Key *string, Value *string, Operation TagOperation) BackupResourcestatic#
A tag condition.