Class: AWSCDK::Elasticache::CfnReplicationGroup::NodeGroupConfigurationProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
elasticache/cfn_replication_group.rb

Overview

NodeGroupConfiguration is a property of the AWS::ElastiCache::ReplicationGroup resource that configures an Amazon ElastiCache (ElastiCache) Valkey or Redis OSS cluster node group.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(node_group_id: nil, primary_availability_zone: nil, replica_availability_zones: nil, replica_count: nil, slots: nil) ⇒ NodeGroupConfigurationProperty

Returns a new instance of NodeGroupConfigurationProperty.

Parameters:

  • node_group_id (String, nil) (defaults to: nil)

    Either the ElastiCache supplied 4-digit id or a user supplied id for the node group these configuration values apply to.

  • primary_availability_zone (String, nil) (defaults to: nil)

    The Availability Zone where the primary node of this node group (shard) is launched.

  • replica_availability_zones (Array<String>, nil) (defaults to: nil)

    A list of Availability Zones to be used for the read replicas.

  • replica_count (Numeric, nil) (defaults to: nil)

    The number of read replica nodes in this node group (shard).

  • slots (String, nil) (defaults to: nil)

    A string of comma-separated values where the first set of values are the slot numbers (zero based), and the second set of values are the keyspaces for each slot.



1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
# File 'elasticache/cfn_replication_group.rb', line 1391

def initialize(node_group_id: nil, primary_availability_zone: nil, replica_availability_zones: nil, replica_count: nil, slots: nil)
  @node_group_id = node_group_id
  Jsii::Type.check_type(@node_group_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "nodeGroupId") unless @node_group_id.nil?
  @primary_availability_zone = primary_availability_zone
  Jsii::Type.check_type(@primary_availability_zone, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "primaryAvailabilityZone") unless @primary_availability_zone.nil?
  @replica_availability_zones = replica_availability_zones
  Jsii::Type.check_type(@replica_availability_zones, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "replicaAvailabilityZones") unless @replica_availability_zones.nil?
  @replica_count = replica_count
  Jsii::Type.check_type(@replica_count, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "replicaCount") unless @replica_count.nil?
  @slots = slots
  Jsii::Type.check_type(@slots, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "slots") unless @slots.nil?
end

Instance Attribute Details

#node_group_idString? (readonly)

Either the ElastiCache supplied 4-digit id or a user supplied id for the node group these configuration values apply to.



1408
1409
1410
# File 'elasticache/cfn_replication_group.rb', line 1408

def node_group_id
  @node_group_id
end

#primary_availability_zoneString? (readonly)

The Availability Zone where the primary node of this node group (shard) is launched.



1413
1414
1415
# File 'elasticache/cfn_replication_group.rb', line 1413

def primary_availability_zone
  @primary_availability_zone
end

#replica_availability_zonesArray<String>? (readonly)

A list of Availability Zones to be used for the read replicas.

The number of Availability Zones in this list must match the value of ReplicaCount or ReplicasPerNodeGroup if not specified.



1420
1421
1422
# File 'elasticache/cfn_replication_group.rb', line 1420

def replica_availability_zones
  @replica_availability_zones
end

#replica_countNumeric? (readonly)

The number of read replica nodes in this node group (shard).



1425
1426
1427
# File 'elasticache/cfn_replication_group.rb', line 1425

def replica_count
  @replica_count
end

#slotsString? (readonly)

A string of comma-separated values where the first set of values are the slot numbers (zero based), and the second set of values are the keyspaces for each slot.

The following example specifies three slots (numbered 0, 1, and 2): 0,1,2,0-4999,5000-9999,10000-16,383 .

If you don't specify a value, ElastiCache allocates keys equally among each slot.

When you use an UseOnlineResharding update policy to update the number of node groups without interruption, ElastiCache evenly distributes the keyspaces between the specified number of slots. This cannot be updated later. Therefore, after updating the number of node groups in this way, you should remove the value specified for the Slots property of each NodeGroupConfiguration from the stack template, as it no longer reflects the actual values in each node group. For more information, see UseOnlineResharding Policy .



1436
1437
1438
# File 'elasticache/cfn_replication_group.rb', line 1436

def slots
  @slots
end

Class Method Details

.jsii_propertiesObject



1438
1439
1440
1441
1442
1443
1444
1445
1446
# File 'elasticache/cfn_replication_group.rb', line 1438

def self.jsii_properties
  {
    :node_group_id => "nodeGroupId",
    :primary_availability_zone => "primaryAvailabilityZone",
    :replica_availability_zones => "replicaAvailabilityZones",
    :replica_count => "replicaCount",
    :slots => "slots",
  }
end

Instance Method Details

#to_jsiiObject



1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
# File 'elasticache/cfn_replication_group.rb', line 1448

def to_jsii
  result = {}
  result.merge!({
    "nodeGroupId" => @node_group_id,
    "primaryAvailabilityZone" => @primary_availability_zone,
    "replicaAvailabilityZones" => @replica_availability_zones,
    "replicaCount" => @replica_count,
    "slots" => @slots,
  })
  result.compact
end