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

问题描述 投票:0回答:1

我正在尝试使用 terraform 提供 EC2 实例,将 cloudinit 配置文件作为用户数据传递给实例。

作为 cloudinit 配置的一部分,我正在设置环境变量,其中一些变量是 JSON 字符串。

由 terraform 生成并传递给实例的用户数据看起来是正确的,用单引号括起来,但是当环境变量被写入服务器上的文件时,引号被删除,这导致了问题

这里是传递给 EC2 实例的用户数据的示例片段

#cloud-config

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

然后在服务器上的环境文件(

/etc/environment
)看起来像这样

var={"key": "value"}

但是我需要在

/etc/environment

中仍然被单引号包围
var='{"key": "value"}'

关于我如何做到这一点有什么想法吗?我尝试使用

\'
转义引号,但这不是有效的 YAML,因此用户数据因错误而失败,对此有任何想法将不胜感激。

json amazon-ec2 terraform user-data
1个回答
0
投票

看来你可能想要一个块来存放你的 YAML 值。您可以使用

>
来做到这一点。

#cloud-config

environment: 
  var: >
    '{"key": "value"}'
© www.soinside.com 2019 - 2024. All rights reserved.