Fugue.AWS.Elasticache.CacheCluster

Module Members

external

(Function)

Create a reference to an externally managed CacheCluster.

Example usage:

cluster: Elasticache.CacheCluster.external("MyCluster", AWS.Us-east-1)

Type Signature

 fun (String, Region) -> CacheCluster
Argument: name

The name of the target CacheCluster.

Type: String

Argument: region

The region containing the target CacheCluster.

Type: Region

Returns:

A reference to the specified CacheCluster.

Type: CacheCluster

new

(Function)

CacheCluster constructor.

Example usage:

import Fugue.AWS.EC2 as EC2
import Fugue.AWS.Elasticache as Elasticache
import Fugue.AWS.Pattern.Network as Network
import Fugue.Core.AWS.Common as AWS

net: Network.new {
  name: "EXAMPLE",
  cidr: "10.42.0.0/16",
  region: AWS.Us-east-1,
  publicSubnets: [
    (AWS.B, "10.42.12.0/24"),
    (AWS.C, "10.42.13.0/24")
  ],
  privateSubnets: [
    (AWS.B, "10.42.22.0/24"),
    (AWS.C, "10.42.23.0/24")
  ]
}

subnetGroup: Elasticache.CacheSubnetGroup.new {
  name: "private",
  description: "private subnets",
  subnets: net.privateSubnets,
}

clusterSecurityGroup: EC2.SecurityGroup.new {
  description: "redis-example-cluster",
  ipPermissions: [
    # add rules here...
  ],
  ipPermissionsEgress: None,
  vpc: net.vpc,
  tags: None
}

cluster: Elasticache.CacheCluster.new {
  name: "example-cluster",
  cacheNodeType: Elasticache.Cache_t2_micro,
  engine: Elasticache.Redis,
  numCacheNodes: 1,
  securityGroups: [clusterSecurityGroup],
  port: None,
  tags: None,
  cacheSubnetGroup: subnetGroup,
}

Type Signature

 fun (Spec) -> CacheCluster
Argument: spec

A CacheCluster specification.

Type: Spec

Returns:

A CacheCluster value.

Type: CacheCluster

Spec

(Type)

type Spec:
  cacheNodeType: CacheNodeType
  engine: EngineType
  numCacheNodes: Optional<Int>
  securityGroups: List<SecurityGroup>
  name: String
  port: Optional<Int>
  tags: Optional<List<Tag>>
  cacheSubnetGroup: CacheSubnetGroup

CacheCluster Specification

Record {

Field: cacheNodeType

The node type to use for the cluster.

Type: CacheNodeType

Field: engine

The cache engine to use for the cluster.

Type: EngineType

Field: numCacheNodes

The number of cache nodes in the cluster. Must be 1 for Redis. Must be between 1 and 20 for Memcache.

Type: Optional<Int>

Field: securityGroups

The list of SecurityGroups to associate with the cluster.

Type: List<SecurityGroup>

Field: name

The CacheCluster identifier. Up to 20 lower case alphanumeric characters or hyphens. Must start with a letter. Cannot end with a hyphen or include two consecutive hyphens.

Type: String

Field: port

The cache port number.

Type: Optional<Int>

Field: tags

A list of Tags to attach to the cluster.

Type: Optional<List<Tag>>

Field: cacheSubnetGroup

The CacheSubnetGroup to deploy the cluster in.

Type: CacheSubnetGroup

}