ServerlessClusterProps Struct
Properties for a new Aurora Serverless v1 Cluster.
Example
// Create username and password secret for DB Cluster
const secret = new rds.DatabaseSecret(this, 'AuroraSecret', {
username: 'clusteradmin',
});
// The VPC to place the cluster in
const vpc = new ec2.Vpc(this, 'AuroraVpc');
// Create the serverless cluster, provide all values needed to customise the database.
const cluster = new rds.ServerlessCluster(this, 'AuroraCluster', {
engine: rds.DatabaseClusterEngine.AURORA_MYSQL,
vpc,
credentials: { username: 'clusteradmin' },
clusterIdentifier: 'db-endpoint-test',
defaultDatabaseName: 'demos',
});
// Build a data source for AppSync to access the database.
declare const api: appsync.GraphqlApi;
const rdsDS = api.addRdsDataSource('rds', cluster, secret, 'demos');
// Set up a resolver for an RDS query.
rdsDS.createResolver('QueryGetDemosRdsResolver', {
typeName: 'Query',
fieldName: 'getDemosRds',
requestMappingTemplate: appsync.MappingTemplate.fromString(`
{
"version": "2018-05-29",
"statements": [
"SELECT * FROM demos"
]
}
`),
responseMappingTemplate: appsync.MappingTemplate.fromString(`
$utils.toJson($utils.rds.toJsonObject($ctx.result)[0])
`),
});
// Set up a resolver for an RDS mutation.
rdsDS.createResolver('MutationAddDemoRdsResolver', {
typeName: 'Mutation',
fieldName: 'addDemoRds',
requestMappingTemplate: appsync.MappingTemplate.fromString(`
{
"version": "2018-05-29",
"statements": [
"INSERT INTO demos VALUES (:id, :version)",
"SELECT * WHERE id = :id"
],
"variableMap": {
":id": $util.toJson($util.autoId()),
":version": $util.toJson($ctx.args.version)
}
}
`),
responseMappingTemplate: appsync.MappingTemplate.fromString(`
$utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])
`),
});
Properties
backupRetentionoptionalDurationbackup_retentionoptionalDurationbackupRetentionoptionalDurationBackupRetentionoptionalDurationBackupRetentionoptionalDuration= Duration.days(1)#Automatic backup retention cannot be disabled on serverless clusters. Must be a value from 1 day to 35 days.
clusterIdentifieroptionalstringcluster_identifieroptionalstrclusterIdentifieroptionalStringClusterIdentifieroptionalstringClusterIdentifieroptional*string#Default: A name is automatically generated.
copyTagsToSnapshotoptionalbooleancopy_tags_to_snapshotoptionalboolcopyTagsToSnapshotoptionalBooleanCopyTagsToSnapshotoptionalboolCopyTagsToSnapshotoptional*bool= true#credentialsoptionalCredentialscredentialsoptionalCredentialscredentialsoptionalCredentialsCredentialsoptionalCredentialsCredentialsoptionalCredentials#Default: A username of 'admin' and SecretsManager-generated password
defaultDatabaseNameoptionalstringdefault_database_nameoptionalstrdefaultDatabaseNameoptionalStringDefaultDatabaseNameoptionalstringDefaultDatabaseNameoptional*string#Default: Database is not created in cluster.
deletionProtectionoptionalbooleandeletion_protectionoptionalbooldeletionProtectionoptionalBooleanDeletionProtectionoptionalboolDeletionProtectionoptional*bool#Default: true if removalPolicy is RETAIN, false otherwise
enableDataApioptionalbooleanenable_data_apioptionalboolenableDataApioptionalBooleanEnableDataApioptionalboolEnableDataApioptional*bool= false#engineIClusterEngineengineIClusterEngineengineIClusterEngineEngineIClusterEngineEngineIClusterEnginerequired#parameterGroupoptionalIParameterGroupparameter_groupoptionalIParameterGroupparameterGroupoptionalIParameterGroupParameterGroupoptionalIParameterGroupParameterGroupoptionalIParameterGroup#Default: no parameter group.
removalPolicyoptionalRemovalPolicyremoval_policyoptionalRemovalPolicyremovalPolicyoptionalRemovalPolicyRemovalPolicyoptionalRemovalPolicyRemovalPolicyoptionalRemovalPolicy#Default: RemovalPolicy.SNAPSHOT (remove the cluster and instances, but retain a snapshot of the data)
scalingoptionalServerlessScalingOptionsscalingoptionalServerlessScalingOptionsscalingoptionalServerlessScalingOptionsScalingoptionalServerlessScalingOptionsScalingoptionalServerlessScalingOptions#Default: Serverless cluster is automatically paused after 5 minutes of being idle. minimum capacity: 2 ACU maximum capacity: 16 ACU
securityGroupsoptionalISecurityGroup[]security_groupsoptionaltyping.List[ISecurityGroup]securityGroupsoptionalList<ISecurityGroup>SecurityGroupsoptionalISecurityGroup[]SecurityGroupsoptional*[]ISecurityGroup#Default: a new security group is created if vpc was provided. If the vpc property was not provided, no VPC security groups will be associated with the DB cluster.
storageEncryptionKeyoptionalIKeystorage_encryption_keyoptionalIKeystorageEncryptionKeyoptionalIKeyStorageEncryptionKeyoptionalIKeyStorageEncryptionKeyoptionalIKey#Default: the default master key will be used for storage encryption
subnetGroupoptionalIDBSubnetGroupRefsubnet_groupoptionalIDBSubnetGroupRefsubnetGroupoptionalIDBSubnetGroupRefSubnetGroupoptionalIDBSubnetGroupRefSubnetGroupoptionalIDBSubnetGroupRef#Default: a new subnet group is created if vpc was provided. If the vpc property was not provided, no subnet group will be associated with the DB cluster
Default: the default VPC in the account and region will be used
vpcSubnetsoptionalSubnetSelectionvpc_subnetsoptionalSubnetSelectionvpcSubnetsoptionalSubnetSelectionVpcSubnetsoptionalSubnetSelectionVpcSubnetsoptionalSubnetSelection#Default: the VPC default strategy if not specified.
If provided, the vpc property must also be specified.