我正在尝试使用 Troposphere 创建一个 AWS 模板,但我被困在必须将我的 Bash 脚本用作 UserData 的地方。我的主要问题是 Ref 在 Bash 脚本中使用。我将 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"
},