处理EC2用户数据中的JSON字符串

f1tvaqid  于 2023-04-08  发布在  其他
关注(0)|答案(1)|浏览(109)

我正在尝试使用terraform提供一个EC2示例,将一个cloudinit配置文件作为userdata传递给该示例。
作为cloudinit配置的一部分,我正在设置环境变量,其中一些变量是JSON字符串。
由terraform生成并传递给示例的用户数据看起来是正确的,用单引号括起来,但是当环境变量写入服务器上的文件时,引号被去掉,这会导致问题
下面是传递给EC2示例的用户数据的示例片段

#cloud-config

environment:
  var: '{"key": "value"}'

然后在服务器上,环境文件(/etc/environment)如下所示

var={"key": "value"}

但是在/etc/environment中,我仍然需要被单引号包围

var='{"key": "value"}'

我尝试使用\'转义引号,但这不是有效的YAML,因此用户数据失败并出现错误,对此有任何想法都将不胜感激。

vcirk6k6

vcirk6k61#

看起来你可能需要一个YAML值的块。你可以使用>来实现。

#cloud-config

environment: 
  var: >
    '{"key": "value"}'

相关问题