一些输入子网:[!ref testredissubnetaz1,!ref testredissubnetaz2]无效



我尝试为redis实例创建以下云形式堆栈(redis被排除在外,所以只有子网和缓存子网组)。正如标题所说,TestRedisSubnetGroup的创建确实失败了。我可以使用控制台手动创建子网组,当我使用子网ID而不是ref函数时,也可以创建子网组。我已经有子网已经到位了,因为堆栈仅是使用子网创建的,现在我想更新堆栈并添加子网组。(第一种方法是同时创建子网,组和REDIS,但失败了相同的错误。)

tl; tr: ref函数无法正常工作,我错了什么?

vpc-1743447c是带有CIDR 172.31.0.0/16

的默认VPC
---
AWSTemplateFormatVersion: '2010-09-09'
Description: RedisStack
Resources:
  TestRedisSubnetAZ1:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: vpc-1743447c
      AvailabilityZone: eu-central-1a
      CidrBlock: 172.31.64.0/24
      MapPublicIpOnLaunch: false
      Tags:
      - Key: Name
        Value: TestDeletionPolicyStack-AZ1
  TestRedisSubnetAZ2:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: vpc-1743447c
      AvailabilityZone: eu-central-1b
      CidrBlock: 172.31.65.0/24
      MapPublicIpOnLaunch: false
      Tags:
      - Key: Name
        Value: TestDeletionPolicyStack-AZ2
  TestRedisSubnetGroup:
    Type: AWS::ElastiCache::SubnetGroup
    Properties:
      Description: Test Redis Subnet Group
      SubnetIds:
      - "!Ref TestRedisSubnetAZ1"
      - "!Ref TestRedisSubnetAZ2"

原因是 - "!Ref TestRedisSubnetAZ2"无效,因为云形式模板,而 - !Ref TestRedisSubnetAZ2无效。因此,使用参考的替代方法是- Ref: TestRedisSubnetAZ2。但是- Ref: TestRedisSubnetAZ2- "Ref: TestRedisSubnetAZ2"并不相同。

并不明显。

- Ref: TestRedisSubnetAZ2是数组中的嵌套键值。

{
  'SubnetIds' => [
    { 'Ref' => 'TestRedisSubnetAZ1' },
    { 'Ref' => 'TestRedisSubnetAZ2' }
  ]
}

ps:DependsOn也需要一个GO创建堆栈。

最新更新