好的,请阅读有关内部函数 Fn::Sub 的文档。我可以使用文字块来指定用户数据脚本。
UserData:
"Fn::Base64":
!Sub |
#!/bin/bash -xe
yum update -y aws-cfn-bootstrap
/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --configsets wordpress_install --region ${AWS::Region}
/opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WebServerGroup --region ${AWS::Region}
Run Code Online (Sandbox Code Playgroud)
我可以使用映射将 ${Domain} 变量替换为 Ref 函数的结果值。
Name: !Sub
- www.${Domain}
- { Domain: !Ref RootDomainName }
Run Code Online (Sandbox Code Playgroud)
但是如果我需要在文字块内使用映射替代怎么办?例如:
"Fn::Base64": !Sub |
<powershell>
Write-host "My Domain is www.${Domain},{ Domain: !Ref RootDomainName }"
</powershell>
Run Code Online (Sandbox Code Playgroud)
这个例子不起作用,而且我还没有找到可行的方法。有任何想法吗?第一个示例使用户数据脚本更容易编写并且看起来更干净,但是如果无法使用 !Ref 或 !Findinmap ,它的实用性就会大大降低。
有人有什么想法吗?