Class: AWSCDK::RDS::ClusterInstance

Inherits:
Jsii::Object
  • Object
show all
Includes:
IClusterInstance
Defined in:
rds/cluster_instance.rb

Overview

Create an RDS Aurora Cluster Instance.

You can create either provisioned or serverless v2 instances.

Examples:

vpc = nil # AWSCDK::EC2::VPC

my_cluster = AWSCDK::RDS::DatabaseCluster.new(self, "Database", {
    engine: AWSCDK::RDS::DatabaseClusterEngine.aurora_mysql({version: AWSCDK::RDS::AuroraMysqlEngineVersion.VER_2_08_1}),
    writer: AWSCDK::RDS::ClusterInstance.provisioned("writer", {
        instance_type: AWSCDK::EC2::InstanceType.of(AWSCDK::EC2::InstanceClass::R6G, AWSCDK::EC2::InstanceSize::XLARGE4),
    }),
    serverless_v2_min_capacity: 6.5,
    serverless_v2_max_capacity: 64,
    readers: [
        AWSCDK::RDS::ClusterInstance.serverless_v2("reader1", {scale_with_writer: true}),
        AWSCDK::RDS::ClusterInstance.serverless_v2("reader2"),
    ],
    vpc: vpc,
})

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ ClusterInstance

Returns a new instance of ClusterInstance.

Raises:

  • (NoMethodError)


29
30
31
# File 'rds/cluster_instance.rb', line 29

def initialize(*args)
  raise NoMethodError, "aws-cdk-lib.aws_rds.ClusterInstance does not have a visible constructor; use the provided factory methods"
end

Class Method Details

.jsii_overridable_methodsObject



33
34
35
36
37
# File 'rds/cluster_instance.rb', line 33

def self.jsii_overridable_methods
  {
    :bind => { kind: :method, name: "bind", is_optional: false },
  }
end

.provisioned(id, props = nil) ⇒ AWSCDK::RDS::IClusterInstance

Add a provisioned instance to the cluster.

Examples:

AWSCDK::RDS::ClusterInstance.provisioned("ClusterInstance", {
    instance_type: AWSCDK::EC2::InstanceType.of(AWSCDK::EC2::InstanceClass::R6G, AWSCDK::EC2::InstanceSize::XLARGE4),
})

Parameters:

Returns:



48
49
50
51
52
53
# File 'rds/cluster_instance.rb', line 48

def self.provisioned(id, props = nil)
  Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  props = props.is_a?(Hash) ? ::AWSCDK::RDS::ProvisionedClusterInstanceProps.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLlByb3Zpc2lvbmVkQ2x1c3Rlckluc3RhbmNlUHJvcHMifQ==")), "props") unless props.nil?
  Jsii::Kernel.instance.call_static("aws-cdk-lib.aws_rds.ClusterInstance", "provisioned", [id, props])
end

.serverless_v2(id, props = nil) ⇒ AWSCDK::RDS::IClusterInstance

Add a serverless v2 instance to the cluster.

Examples:

AWSCDK::RDS::ClusterInstance.serverless_v2("ClusterInstance", {
    scale_with_writer: true,
})

Parameters:

Returns:



64
65
66
67
68
69
# File 'rds/cluster_instance.rb', line 64

def self.serverless_v2(id, props = nil)
  Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  props = props.is_a?(Hash) ? ::AWSCDK::RDS::ServerlessV2ClusterInstanceProps.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLlNlcnZlcmxlc3NWMkNsdXN0ZXJJbnN0YW5jZVByb3BzIn0=")), "props") unless props.nil?
  Jsii::Kernel.instance.call_static("aws-cdk-lib.aws_rds.ClusterInstance", "serverlessV2", [id, props])
end

Instance Method Details

#bind(scope, cluster, props) ⇒ AWSCDK::RDS::IAuroraClusterInstance

Add the ClusterInstance to the cluster.

Parameters:

Returns:



77
78
79
80
81
82
83
# File 'rds/cluster_instance.rb', line 77

def bind(scope, cluster, props)
  Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope")
  Jsii::Type.check_type(cluster, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLklEYXRhYmFzZUNsdXN0ZXIifQ==")), "cluster")
  props = props.is_a?(Hash) ? ::AWSCDK::RDS::ClusterInstanceBindOptions.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmRzLkNsdXN0ZXJJbnN0YW5jZUJpbmRPcHRpb25zIn0=")), "props")
  jsii_call_method("bind", [scope, cluster, props])
end