在创建块设备时使用!FindInMap
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在创建块设备时使用!FindInMap相关的知识,希望对你有一定的参考价值。
所以我只是在创建磁盘时尝试使用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时,它会增加额外的20GB体积,对于dev来说它将获得40GB的体积。
答案
你需要将!FindInMap
向下移动到结构中并重复它,如下所示:
BlockDeviceMappings:
- DeviceName: '/dev/sdf' # additional volume
Ebs:
VolumeSize: !FindInMap [ec2Map, !Ref myec2instance, volsize]
VolumeType: !FindInMap [ec2Map, !Ref myec2instance, voltype]
...
以上是关于在创建块设备时使用!FindInMap的主要内容,如果未能解决你的问题,请参考以下文章