Cloudformation - ElastiCache :: SubnetGroup不尊重资源名称

时间:2016-09-07 15:57:10

标签: amazon-web-services amazon-elasticache amazon-cloudformation

我有一个奇怪的问题,CloudFormation似乎是一个bug,或者更可能 - 我错过了一些非常基本的东西。

我有以下模板(一个片段)定义了两个子网和一个子网组,如下所示:

...

"redissubnet1": {
  "Type": "AWS::EC2::Subnet",
  "Properties": {
    "CidrBlock": "10.0.8.0/24",
    "AvailabilityZone": "us-east-1c",
    "VpcId": {
      "Ref": "myVPC"
    },
    "Tags": [
      {
        "Key": "Name",
        "Value": "redissubnet1"
      }
    ]
  }
},
"redissubnet2": {
  "Type": "AWS::EC2::Subnet",
  "Properties": {
    "CidrBlock": "10.0.9.0/24",
    "AvailabilityZone": "us-east-1c",
    "VpcId": {
      "Ref": "myVPC"
    },
    "Tags": [
      {
        "Key": "Name",
        "Value": "redissubnet2"
      }
    ]
  }
},
"SubnetGroupName": {
  "Type": "AWS::ElastiCache::SubnetGroup",
  "Properties": {
    "Description": "Subnet group for main application redis elastic cache",
    "SubnetIds": [
      {
        "Ref": "redissubnet1"
      },
      {
        "Ref": "redissubnet2"
      }
    ]
  }
}

...

创建了所有资源,但SubnetGroup名称 - " SubnetGroupName" - 没有荣幸。 AWS以[a-z] - [a-z] - [a-z0-9]

格式自动分配名称

有没有人遇到过这个?

我实际上要做的是在创建ElastiCache :: Cluster时按名称引用此子网组 - 但是由于资源名称不受尊重,我无法这样做。

有人有什么想法吗?感谢所有的帮助:)

1 个答案:

答案 0 :(得分:0)

答案是引用弹性缓存资源中的子网组名称,如下所示:

{
"subnet1": {
    "Type": "AWS::EC2::Subnet",
    "Properties": {
        "CidrBlock": "10.0.8.0/24",
        "AvailabilityZone": "us-east-1c",
        "VpcId": {
            "Ref": "myVPC"
        },
        "Tags": [{
            "Key": "Name",
            "Value": "subnet1"
        }]
    }
},
"subnet2": {
    "Type": "AWS::EC2::Subnet",
    "Properties": {
        "CidrBlock": "10.0.9.0/24",
        "AvailabilityZone": "us-east-1c",
        "VpcId": {
            "Ref": "myVPC"
        },
        "Tags": [{
            "Key": "Name",
            "Value": "subnet2"
        }]
    }
},
"redis1": {
    "Type": "AWS::ElastiCache::SubnetGroup",
    "Properties": {
        "Description": "Subnet group for main application redis elastic cache",
        "SubnetIds": [{
            "Ref": "subnet1"
        }, {
            "Ref": "subnet2"
        }]
    }
},
"mainredis": {
    "Type": "AWS::ElastiCache::CacheCluster",
    "Properties": {
        "AutoMinorVersionUpgrade": "true",
        "CacheNodeType": "cache.t2.small",
        "CacheSubnetGroupName": {
            "Ref": "redis1"
        },
        "ClusterName": "mainredis",
        "Engine": "redis",
        "NumCacheNodes": "1",
        "Port": "6379",
        "Tags": [{
            "Key": "Name",
            "Value": "mainredis"
        }, {
            "Key": "Function",
            "Value": "Main redis store"
        }],
        "VpcSecurityGroupIds": [
            "redissecuritygroup"
        ]
    }
  }
}