想要使用 CF 创建 Redis 全局数据存储,遵循指南https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html
但没有运气,我可以创建 Redis 集群,但不能创建全局数据存储:我的代码:
AWSTemplateFormatVersion: '2010-09-09'
Description: redis deployment.
Parameters:
RedisSubnets:
Description: PRIVATE Subnets for subnet group
Type: "List<String>"
VpcId:
Description: The VPC that the Postgres DB is deployed to
Type: AWS::EC2::VPC::Id
NodeType:
Description: Node type for redis service
Type: String
ClusterName:
Description: Cluster name for redis service
Type: String
AvailabilityZones:
Description: Availability zones for redis service
Type: "List<String>"
CidrIp1:
Description: Ingress CIDr
Type: String
Default: 0.0.0.0/0
CidrIp2:
Description: Ingress CIDr
Type: String
Default: 0.0.0.0/0
Resources:
RedisSubnetGroup:
Type: AWS::ElastiCache::SubnetGroup
Properties:
CacheSubnetGroupName: !Sub ${AWS::StackName}-subnetgroup
Description: "Subnet group for redis server"
SubnetIds: !Ref RedisSubnets
RedisSecurityGroup:
Type: "AWS::EC2::SecurityGroup"
Properties:
VpcId: !Ref VpcId
GroupDescription: "A component security group allowing access only to redis"
ElasticacheComponentSecurityGroup:
Type: "AWS::EC2::SecurityGroup"
Properties:
GroupDescription: "Elasticache security group"
SecurityGroupIngress:
-
IpProtocol: "tcp"
FromPort: 6379
ToPort: 6379
CidrIp: !Ref CidrIp1
-
IpProtocol: "tcp"
FromPort: 6379
ToPort: 6379
CidrIp: !Ref CidrIp2
VpcId: !Ref VpcId
RedisService:
Type: AWS::ElastiCache::ReplicationGroup
Properties:
AutoMinorVersionUpgrade: false
CacheNodeType: cache.r5.large
CacheParameterGroupName: default.redis6.x
CacheSubnetGroupName: !Ref RedisSubnetGroup
ReplicationGroupId: !Ref ClusterName
SecurityGroupIds:
- !Ref ElasticacheComponentSecurityGroup
Engine: "Redis"
EngineVersion: "6.2"
NumNodeGroups: 1
AutomaticFailoverEnabled: false
ReplicationGroupDescription: Sample Redis group for scaling
Port: 6379
globalreplication:
Type: AWS::ElastiCache::GlobalReplicationGroup
Properties:
AutomaticFailoverEnabled: false
GlobalReplicationGroupDescription: description example
GlobalReplicationGroupIdSuffix: test
Members:
- ReplicationGroupId: !Ref ClusterName
ReplicationGroupRegion: eu-west-1
Role: primary
RegionalConfigurations:
- ReplicationGroupId: test-redis-eu-west-2
ReplicationGroupRegion: eu-west-2
Outputs:
redisUrl:
Description: URL for newly created redis service
Value: !Ref RedisService
如果有人可以提供帮助,我会收到此错误:
资源全局复制的属性验证失败,消息为:#/Members/0/Role:#: 2 个子模式中只有 1 个匹配 #/Members/0/Role:关键字 [enum] 的验证约束失败