Я пытаюсь написать шаблон формирования облака, который создаст конфигурацию запуска, ASG, кластер ECS и зарегистрирует экземпляры ec2 в ASG в указанном кластере.
У меня есть длинный файл userdata.sh, который используется для настройки конфигурации запуска.
Поместив эти пользовательские данные в файл yaml, т.е.
...
UserData:
Fn::Base64: !Sub |
#!/bin/bash
...
это выглядит довольно ужасно. Кроме того, когда я пытаюсь вставить имя кластера в агент ecs $ {ECSCluster} с помощью Sub, я получаю «имена переменных в синтаксисе Fn :: Sub должны содержать только буквенно-цифровые символы, подчеркивания, точки и двоеточия». Переменные среды в моих пользовательских данных принимают ту же форму $ {ENV_VARIABLE}.
Я пробовал передать файл пользовательских данных в стек AWS Cloudformation, но получил " Ошибка формата шаблона: неверный формат YAML. "
Каков рекомендуемый способ передачи сложного файла userdata.sh в CFT таким образом, чтобы можно было добавить имя кластера в конфигурацию ecs-agent?