1

Troposphere を使用して AWS テンプレートを作成しようとしていますが、Bash スクリプトを UserData として使用しなければならないところで行き詰まっています。私の主な問題は、Bash Script で使用される Ref です。Bash スクリプトをファイル読み取りとしてインポートし、次のように Base64 にエンコードしています。

UserData= Base64(Join("", [
    open('path to my bashscript', "r")
    .read()
    .splitlines(True)
]))

私のbashスクリプトにはRefが次のように使用されています:

#!/bin/bash

set -x

export -f check_instance_service_status

timeout Ref('ValueReferenced') bash -c "check_instance_service_status $ELB_NAME"

私が得ている出力は次のとおりです。

"#!/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",

ただし、次のように Ref を適切な JSON 互換に変換する必要があります。

"  timeout \"",
{
   "Ref": "ValueReferenced"
},
4

0 に答える 0