【发布时间】:2021-11-11 18:01:47
【问题描述】:
我在 Auto Scaling 组的 CloudFormation LaunchTemplate 中有以下 UserData。前两个命令没有问题,第三个没有被调用。没有 Sub 函数,一切顺利,但是我们的代码已经发展到需要将该 EBS 变量传递到某个地方(但不一定在 bash 脚本中)。我这样做的方式是不好的做法吗?如果没有,我如何确保最后一行被执行?
Fn::Base64:
!Sub
- |
#!/bin/bash
echo ${EBS} > /home/ubuntu/test.txt
aws s3 cp s3://s3url/script.sh /home/ubuntu
bash script.sh "$(curl http://169.254.169.254/latest/meta-data/local-ipv4)" "$(cat /home/ubuntu/test.txt)"
- {EBS: !Ref DevEBS}
我使用过 cloud-boothook,但是在与 Sub 函数一起使用时,将其放在 #!/bin/bash 之前似乎会将用户锁定在创建的实例之外(密钥不被接受?)。
非常感谢您的帮助!
【问题讨论】:
-
使用
set -x这样你就可以得到错误的调试输出。 -
@jordanm 的语法是什么样的?
-
字面意思是
set -x在#!/bin/bash之后。
标签: amazon-web-services cloud amazon-cloudformation infrastructure-as-code