По моему мнению, лучше создать Sub
параметр в сценарии:
UserData:
Fn::Sub: |
echo "This is a test example"
if ${TestParameter}; then
echo "Only is parameter is true"
fi
Но так как вы не хотите иметь if внутри сценария, вам придется создатьтело сценария в шаблоне Cloudformation.Построение строк в CFN всегда грязно.Попробуйте что-то вроде этого:
UserData:
Fn::Join: ["\n", ["echo 'This is a test example'",
['Fn::If': [!Equals [!Ref TestParameter, "true"], "echo 'Parameter is true'", ""]]]]