2

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"
},
Nimantha
  • 6,405
  • 6
  • 28
  • 69

0 Answers0