Interface IServerlessClusterProps
Properties for a new Aurora Serverless v1 Cluster.
Namespace: Amazon.CDK.AWS.RDS
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public interface IServerlessClusterProps
Syntax (vb)
Public Interface IServerlessClusterProps
Remarks
ExampleMetadata: infused
Examples
// Build a data source for AppSync to access the database.
GraphqlApi api;
// Create username and password secret for DB Cluster
var secret = new DatabaseSecret(this, "AuroraSecret", new DatabaseSecretProps {
Username = "clusteradmin"
});
// The VPC to place the cluster in
var vpc = new Vpc(this, "AuroraVpc");
// Create the serverless cluster, provide all values needed to customise the database.
var cluster = new ServerlessCluster(this, "AuroraCluster", new ServerlessClusterProps {
Engine = DatabaseClusterEngine.AURORA_MYSQL,
Vpc = vpc,
Credentials = new Dictionary<string, string> { { "username", "clusteradmin" } },
ClusterIdentifier = "db-endpoint-test",
DefaultDatabaseName = "demos"
});
var rdsDS = api.AddRdsDataSource("rds", cluster, secret, "demos");
// Set up a resolver for an RDS query.
rdsDS.CreateResolver("QueryGetDemosRdsResolver", new BaseResolverProps {
TypeName = "Query",
FieldName = "getDemosRds",
RequestMappingTemplate = MappingTemplate.FromString(@"
{
""version"": ""2018-05-29"",
""statements"": [
""SELECT * FROM demos""
]
}
"),
ResponseMappingTemplate = MappingTemplate.FromString(@"
$utils.toJson($utils.rds.toJsonObject($ctx.result)[0])
")
});
// Set up a resolver for an RDS mutation.
rdsDS.CreateResolver("MutationAddDemoRdsResolver", new BaseResolverProps {
TypeName = "Mutation",
FieldName = "addDemoRds",
RequestMappingTemplate = 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 = MappingTemplate.FromString(@"
$utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])
")
});
Synopsis
Properties
BackupRetention | The number of days during which automatic DB snapshots are retained. |
ClusterIdentifier | An optional identifier for the cluster. |
CopyTagsToSnapshot | Whether to copy tags to the snapshot when a snapshot is created. |
Credentials | Credentials for the administrative user. |
DefaultDatabaseName | Name of a database which is automatically created inside the cluster. |
DeletionProtection | Indicates whether the DB cluster should have deletion protection enabled. |
EnableDataApi | Whether to enable the Data API. |
Engine | What kind of database to start. |
ParameterGroup | Additional parameters to pass to the database engine. |
RemovalPolicy | The removal policy to apply when the cluster and its instances are removed from the stack or replaced during an update. |
Scaling | Scaling configuration of an Aurora Serverless database cluster. |
SecurityGroups | Security group. |
StorageEncryptionKey | The KMS key for storage encryption. |
SubnetGroup | Existing subnet group for the cluster. |
Vpc | The VPC that this Aurora Serverless v1 Cluster has been created in. |
VpcSubnets | Where to place the instances within the VPC. |
Properties
BackupRetention
The number of days during which automatic DB snapshots are retained.
virtual Duration BackupRetention { get; }
Property Value
Remarks
Automatic backup retention cannot be disabled on serverless clusters. Must be a value from 1 day to 35 days.
Default: Duration.days(1)
ClusterIdentifier
An optional identifier for the cluster.
virtual string ClusterIdentifier { get; }
Property Value
System.String
Remarks
Default: - A name is automatically generated.
CopyTagsToSnapshot
Whether to copy tags to the snapshot when a snapshot is created.
virtual Nullable<bool> CopyTagsToSnapshot { get; }
Property Value
System.Nullable<System.Boolean>
Remarks
Default: - true
Credentials
Credentials for the administrative user.
virtual Credentials Credentials { get; }
Property Value
Remarks
Default: - A username of 'admin' and SecretsManager-generated password
DefaultDatabaseName
Name of a database which is automatically created inside the cluster.
virtual string DefaultDatabaseName { get; }
Property Value
System.String
Remarks
Default: - Database is not created in cluster.
DeletionProtection
Indicates whether the DB cluster should have deletion protection enabled.
virtual Nullable<bool> DeletionProtection { get; }
Property Value
System.Nullable<System.Boolean>
Remarks
Default: - true if removalPolicy is RETAIN, false otherwise
EnableDataApi
Whether to enable the Data API.
virtual Nullable<bool> EnableDataApi { get; }
Property Value
System.Nullable<System.Boolean>
Remarks
Default: false
See: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html
Engine
ParameterGroup
Additional parameters to pass to the database engine.
virtual IParameterGroup ParameterGroup { get; }
Property Value
Remarks
Default: - no parameter group.
RemovalPolicy
The removal policy to apply when the cluster and its instances are removed from the stack or replaced during an update.
virtual Nullable<RemovalPolicy> RemovalPolicy { get; }
Property Value
System.Nullable<RemovalPolicy>
Remarks
Default: - RemovalPolicy.SNAPSHOT (remove the cluster and instances, but retain a snapshot of the data)
Scaling
Scaling configuration of an Aurora Serverless database cluster.
virtual IServerlessScalingOptions Scaling { get; }
Property Value
Remarks
Default: - Serverless cluster is automatically paused after 5 minutes of being idle. minimum capacity: 2 ACU maximum capacity: 16 ACU
SecurityGroups
Security group.
virtual ISecurityGroup[] SecurityGroups { get; }
Property Value
Remarks
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.
StorageEncryptionKey
The KMS key for storage encryption.
virtual IKey StorageEncryptionKey { get; }
Property Value
Remarks
Default: - the default master key will be used for storage encryption
SubnetGroup
Existing subnet group for the cluster.
virtual ISubnetGroup SubnetGroup { get; }
Property Value
Remarks
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
Vpc
The VPC that this Aurora Serverless v1 Cluster has been created in.
virtual IVpc Vpc { get; }
Property Value
Remarks
Default: - the default VPC in the account and region will be used
VpcSubnets
Where to place the instances within the VPC.
virtual ISubnetSelection VpcSubnets { get; }
Property Value
Remarks
If provided, the vpc
property must also be specified.
Default: - the VPC default strategy if not specified.