AWS Cloudformation 使用 Fn::Join 在文件中输出双引号

2023-11-29

经过大量研究和挫折后,我并没有完全得到我所希望的输出。

例如,所需的输出到文件中

"accessKeyId":"UIIUHO]SOMEKEY[SHPIUIUHIU"

但我得到的是

accessKeyId:UIIUHO]SOMEKEY[SHPIUIUHIU

以下是 AWS Cloudformation 模板中的行

{"Fn::Join": ["", ["echo \" accessKeyId:", {"Ref": "AccessKeyId"}, "\" >>  /home/ubuntu/myfile.json"] ] }, 

我尝试在 echo 语句中添加 \" with 但没有输出引号。有人可以展示如何生成上面所需的输出吗?


事实上这是一个正确转义引号的问题。

原因是:\"CloudFormation 字符串内部转义为"(双引号)。

例如,"hello \"me\""给你 :

hello "me"

在你的行中,你真正向 bash 提供的是:

echo " accessKeyId:XXXXX" >> /home/ubuntu/myfile.json

考虑到 bash 使用引号,您会得到字符串

accessKeyId:XXXXX

在你的里面/home/ubuntu/myfile.json

为了解决您的问题,我建议使用:

{"Fn::Join": ["", ["echo '\"accessKeyId\":\"", {"Ref": "AccessKeyId"}, "\"' >>  /home/ubuntu/myfile.json"] ] },

被转义为

echo '"accessKeyId":"XXXXX"' >>  /home/ubuntu/myfile.json

(难以阅读:echo 使用的整个字符串都在单引号内)。

我现在无法尝试,但它应该可以解决问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS Cloudformation 使用 Fn::Join 在文件中输出双引号 的相关文章

随机推荐