【发布时间】:2020-03-19 00:13:18
【问题描述】:
我正在尝试使用以下方法将用户数据传递给在 Cloudformation 中创建的 EC2 实例:
UserData: !Base64
'Fn::Join':
- ''
- - |
#!/bin/bash -xe
echo '
- !Ref 'someVar'
- |
' > /tmp/some-content
有效。这是扩展的用户数据(顺便说一句,我也不知道为什么echo ' 后面有一个新行,但这不是主要问题):
#!/bin/bash -xe
echo '
some string passed as parameter' > /tmp/some-content
但如果我从 !Ref 部分中删除 -,它会将 !Ref 视为字符串:
UserData: !Base64
'Fn::Join':
- ''
- - |
#!/bin/bash -xe
echo '
!Ref 'License'
' > /tmp/some-content
这是扩展的用户数据。
#!/bin/bash -xe
echo '
!Ref 'someVar'
' > /tmp/some-content
为什么会这样?这是 cloudformation 内部的东西,仅当 !Ref 变量单独作为列表中的元素时才会扩展?
【问题讨论】:
标签: amazon-web-services yaml amazon-cloudformation string-interpolation