CloudFormation 模板中的 Elasticache 复制组 ID

Elasticache replication group id in CloudFormation template

使用 CloudFormation 模板时如何设置 Redis ReplicationGroup ID? docs show no way to do that and the CLI中的所有选项你都可以轻松做到这一点。我的最终目标是拥有一个包含 3 个集群成员的 Redis 复制组,但我想选择名称而不是 AWS 为我设置一个唯一名称。

这是我的模板的一个片段:

  "Resources": {
    "mqpReplicationGroup": {
      "Type": "AWS::ElastiCache::ReplicationGroup",
      "Properties": {
        "CacheNodeType": {
          "Ref": "CacheNodeType"
        },
        "CacheSubnetGroupName": {
          "Ref": "CacheSubnets"
        },
        "ReplicationGroupDescription": "Redis Replication Group",
        "Engine": "redis",
        "EngineVersion": {
          "Ref": "RedisVersion"
        },
        "NumCacheClusters": {
          "Ref": "NumberOfCacheNodes"
        },
        "AutoMinorVersionUpgrade": "true",
        "AutomaticFailoverEnabled": "true",
        "PreferredMaintenanceWindow": "sat:09:25-sat:22:30",
        "SnapshotRetentionLimit": "4",
        "SnapshotWindow": "00:05-05:30",
        "NotificationTopicArn": {
          "Fn::Join" :[":",["arn:aws:sns",{ "Ref" : "AWS::Region" },{ "Ref" : "AWS::AccountId" },"service-aws"]]
        },
        "SecurityGroupIds": [
          {
            "Fn::Join": [
              ",",
              {
                "Ref": "VpcSecurityGroupIds"
              }
            ]
          }
        ]
      }
    },
    "CacheSubnets": {
      "Type": "AWS::ElastiCache::SubnetGroup",
      "Properties": {
        "Description": "mqp-cache-subnet",
        "SubnetIds": {
          "Ref": "SubnetIds"
        }
      }
    }
  }

目前无法使用 CloudFormation 完成此操作。

截至 2017 年,现在可以使用 ReplicationGroupId 属性。

由于它是可选的,AWS CloudFormation 在未指定时仍会生成一个唯一的物理 ID。

Name Type 的限制:

  • 必须包含 1 到 20 个字母数字字符或连字符。
  • 第一个字符必须是字母。
  • 不能以连字符结尾或包含两个连续的连字符。