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.