Некоторые входные подсети в: [! Ref TestRedisSubnetAZ1,! Ref TestRedisSubnetAZ2] недействительны - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь создать следующий стек CloudFormation для экземпляра Redis (Redis опущен, поэтому просто подсеть и группа подсетей кэша).Как говорится в названии, создание TestRedisSubnetGroup не удается.Я могу создать группу подсетей вручную с помощью консоли, а также создать группу подсетей, когда вместо функции ref я использую идентификатор подсети.У меня уже есть подсети, потому что стек был создан сначала только с подсетями, и теперь я хочу обновить стек и добавить группу подсетей.(Первый подход состоял в том, чтобы создать подсеть, группу и redis одновременно, но это не удалось с той же ошибкой.)

TL; TR: функция ref не работает должным образом, что я сделал не так??

vpc-1743447c - это VPC по умолчанию с CIDR 172.31.0.0/16

---
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"

1 Ответ

0 голосов
/ 06 марта 2019

Причина в том, что - "!Ref TestRedisSubnetAZ2" недопустим в качестве шаблона CloudFormation и - !Ref TestRedisSubnetAZ2 не является допустимым YAML. Таким образом, альтернативный способ использования ссылки - - Ref: TestRedisSubnetAZ2. Но не очевидно, что - Ref: TestRedisSubnetAZ2 и - "Ref: TestRedisSubnetAZ2" - это не одно и то же.

- Ref: TestRedisSubnetAZ2 - это вложенное значение ключа в массиве.

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

PS: DependsOn также требуется для создания стека за один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...