0
我正在尝试编写一个云形成模板,它将创建启动配置,ASG,ECS群集,并将ASG中的ec2实例注册到所述群集。Cloudformation ECS群集
我有一个很长的userdata.sh文件,用于设置启动配置。
通过把这个用户数据在YAML文件 即
...
UserData:
Fn::Base64: !Sub |
#!/bin/bash
...
它看起来很可怕。另外,当我尝试使用Sub将集群名称插入ecs代理$ {ECSCluster}中时,我得到“Fn :: Sub语法中的变量名称只能包含字母数字字符,下划线,句点和冒号”。我的用户数据中的环境变量具有相同的格式$ {ENV_VARIABLE}。
我试过Passing userdata file to AWS Cloudformation stack但收到“模板格式错误:没有很好地形成YAML”
什么是传递一个复杂的userdata.sh文件到一个CFT以这样的方式推荐的方式,你可以将群集名称添加到ecs-agent配置中?
我实际上使用$ {ECSCluster},这是一个错字 – user2254140
在你的用户数据(或使用'Fn :: Sub'的CF模板的其他部分)中几乎肯定存在一个问题, 。也许,CF模板编译器认为某些东西是一个变量引用,这并不意味着如此。没有看到它的样子很难说。 –
如果我以$ {ENV_VAR}格式引用环境变量,CFT如何区分环境变量和资源? – user2254140