我正在 CloudFormation 模板的 UserData 部分創建一個 .bashrc 檔案
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
此時,我想根據條件使用兩個陳述句之一。任何一個
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
echo "export JOIN_STR=${ExistingJoinString}" >> /home/ec2-user/.bashrc
或者
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
echo "export JOIN_STR=${CRDBIPNode01.PrimaryPrivateIpAddress},${CRDBIPNode02.PrimaryPrivateIpAddress},${CRDBIPNode03.PrimaryPrivateIpAddress}" >> /home/ec2-user/.bashrc
我已經定義了一個條件:
Conditions:
UseNewJoinString: !Equals [!Ref ExistingJoinString, NONE]
有誰知道使用“!If”陳述句的方法,或者我可以用來控制哪個陳述句最終出現在我的 .bashrc 中的任何其他技巧。像這樣的東西:
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
!If
- UseNewJoinString
-
echo "export JOIN_STR=${CRDBIPNode01.PrimaryPrivateIpAddress},${CRDBIPNode02.PrimaryPrivateIpAddress},${CRDBIPNode03.PrimaryPrivateIpAddress}" >> /home/ec2-user/.bashrc
-
echo "export JOIN_STR=${ExistingJoinString}" >> /home/ec2-user/.bashrc
在此先感謝您的幫助和見解。
uj5u.com熱心網友回復:
我目前正在學習 CloudFormation 并且不知道所有技巧,但是使用宏來修改模板是一個可能的解決方案嗎?
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/macros-example.html
uj5u.com熱心網友回復:
我選擇將“if”陳述句直接嵌入到我的 .bashrc 中
echo "if [ '${ExistingJoinString}' = 'NONE' ]; then" >> /home/ec2-user/.bashrc
echo " export JOIN_STR=${CRDBIPNode01.PrimaryPrivateIpAddress},${CRDBIPNode02.PrimaryPrivateIpAddress},${CRDBIPNode03.PrimaryPrivateIpAddress}" >> /home/ec2-user/.bashrc
echo "else" >> /home/ec2-user/.bashrc
echo " export JOIN_STR=${ExistingJoinString}" >> /home/ec2-user/.bashrc
echo "fi" >> /home/ec2-user/.bashrc
對這個解決方案不太滿意,但它有效。仍在尋找更好的想法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/399948.html
