Использование! FindInMap при создании блочного устройства - PullRequest
0 голосов
/ 20 апреля 2019

Так что я просто пытаюсь использовать FindInMap при создании диска.

Я получаю структуру, но получаю ошибку:

«Значение свойства BlockDeviceMappings должно иметь тип List»

Так что ясно, что я не полностью понимаю макет.

Просто пробую все, что могу придумать. К сожалению, примеры из AWS в основном ссылаются на использование его для регионов. Не слишком полезно, как вы увидите.

 ec2Map:                         ---(my map)
    test:                         ----(outter key)
      InstanceType: t2.small
      volsize: 20                ----(inner key)
    dev:
      InstanceType: t2.small
      volsize: 40

Note: there is parameter that references 'myec2instances' so I can pick the size in a drop down.

#here is where I am lost. How to I  reference the other items needed like device name and volumetype? 

So I get rid of the error mentioned above..


 BlockDeviceMappings: !FindInMap
        - ec2Map
        - !Ref 'myec2instance'
        - volsize
           DeviceName: "/dev/sdf"
      #       Ebs:
      #         VolumeSize: 
      #         VolumeType: gpa

Я в основном пытаюсь сделать так, чтобы при подготовке теста ec2 к нему добавлялся дополнительный том объемом 20 ГБ, для dev он получал том объемом 40 ГБ.

1 Ответ

1 голос
/ 22 апреля 2019

Вам нужно переместить !FindInMap вниз в структуре и повторить его, как это:

BlockDeviceMappings:
  - DeviceName: '/dev/sdf' # additional volume
    Ebs:
      VolumeSize: !FindInMap [ec2Map, !Ref myec2instance, volsize]
      VolumeType: !FindInMap [ec2Map, !Ref myec2instance, voltype]
      ...    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...