[英]AWS Cloudformation- How to do string Uppercase or lowercase in json/yaml template
[英]cloudformation- how to use Ref in sources of AWS::CloudFormation::Init section?
我正在嘗試在AWS::CloudFormation::Init
中編寫源代碼以獲取如下參數:
"Parameters" : {
"Environment" : {
"Description" : "The Environment",
"Type" : "String",
"AllowedValues" : [
"DEV",
"QA",
"UAT",
"PROD"
]
}
}
下面是我的元數據部分:
"LaunchTemplate": {
"Type": "AWS::EC2::LaunchTemplate",
"Metadata": {
"Comment" : "Install application",
"AWS::CloudFormation::Init" : {
"configSets" : {
"full_install" : [ "prepare", "app-deployment" ]
},
"app-deployment" : {
"sources": {
"Fn::Join":["",["/app/",{"Ref": "Environment"},"/appname"]] : "https://xyz.s3.amazonaws.com/appname.tar"
},
"files": {
"Fn::Join":["",["/opt/",{"Ref": "Environment"},"/index.html"]] : {
"content" : "<html><title>HelloTitle</title><body><h1>header H1</h1></body></html>"
}
這是行不通的。 我可以使用Ref
function 在sources
和files
部分中以這種方式使用參數嗎?
我不認為你能做到這一點。
但是,解決方法是使用 to use commands部分。
我可以使用yaml
(我個人使用的)演示解決方法背后的想法,包括多行文件:
commands:
04_setup_index_html:
command: !Sub |
mkdir -p /opt/${Environment}
echo "<html><title>HelloTitle</title><body><h1>header H1</h1></body></html>" \
> /opt/${Environment}/index.html
05_setup_index2_html_multiline:
command: !Sub |
mkdir -p /opt/${Environment}
cat >/opt/${Environment}/index2.html << EOL
<html>
<title>HelloTitle</title>
<body>
<h1>header H1</h1>
</body>
</html>
EOL
這樣您就可以根據模板Parameters
動態創建文件和文件夾。
當然json
也可以,但我現在沒有經過測試的工作示例。 yaml
中的片段肯定可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.