У меня есть параметр commadelimited в шаблоне CloudFormation:
Parameters:
BlockDevices:
Type: CommaDelimitedList
Description: Comma Delimited size for sda1 and sdb on NFS server
Default: 90, 100
позже в Ec2Instance. Я могу ссылаться на эти параметры в разделе ресурсов:
Resources:
Ec2Instance:
Type: 'AWS::EC2::Instance'
Properties:
BlockDeviceMappings:
-
DeviceName: "/dev/sda1"
Ebs:
VolumeSize: !Select [0, !Ref BlockDevices]
VolumeType: gp2
Encrypted: true
-
DeviceName: "/dev/sdb"
Ebs:
VolumeSize: !Select [1, !Ref BlockDevices]
VolumeType: gp2
Encrypted: true
Проблема: Как сделать ссылку на этот commadelimitedпараметры внутри блока Userdata в теле моего сценария оболочки?
Мне нужно что-то вроде:
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
echo ${!Select [0, !Ref BlockDevices]}
Но я получаю сообщение об ошибке в /var/log/cloud-init-output.log наЭкстан Ec2:
$ {Выберите [0,! Ref BlockDevices]}: неправильная замена