I am trying to create an AWS template using Troposphere and I am stuck at a point where I have to use my Bash Script as UserData. My main problem being Ref used in Bash Script. I am importing Bash Script as a file read and encode them to Base64 as:
UserData= Base64(Join("", [
open('path to my bashscript', "r")
.read()
.splitlines(True)
]))
My bash script has Ref used as:
#!/bin/bash
set -x
export -f check_instance_service_status
timeout Ref('ValueReferenced') bash -c "check_instance_service_status $ELB_NAME"
The output I am getting is:
"#!/bin/bash\n",
"set -x\n",
"\n",
" export -f check_instance_service_status\n",
" timeout Ref('ValueReferenced') bash -c \"check_instance_service_status $ELB_NAME\"\n",
" RC=$?\n",
However, I want the Ref to be converted to proper JSON compatible as:
" timeout \"",
{
"Ref": "ValueReferenced"
},