Передать разделенные запятыми параметры внутри скрипта в блоке UserData - PullRequest
0 голосов
/ 20 июня 2019

У меня есть параметр 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]}: неправильная замена

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