【发布时间】:2023-02-15 11:30:21
【问题描述】:
我正在处理我的第一个 Terraform 项目,我正在寻找对 JSON 对象进行字符串化的最佳方法。我正在定义的资源有一个需要 JSON 字符串的参数。 JSON结构为:
"document": {
"tag": "String Title",
"response": "There's a string response and perhaps a price like $[XX.XX]."
}
}
我不认为 jsonencode 或 jsondecode 会这样做。我可以提前对它们进行字符串化,但在这种情况下这是不可扩展的。我不确定我是否可以使用 JavaScript 或其他语言以及 Terraform 来做到这一点,或者 HCL 中是否有一个函数可以做到这一点。
【问题讨论】:
-
这正是
jsonencode所做的。你为什么说jsonencode不适合你? -
@MarkB 那里的文档和示例看起来不像:developer.hashicorp.com/terraform/language/functions/jsonencode
-
我想您需要展示更多您认为您的 Terraform 应该是什么样子,以及您希望最终结果如何。 developer.hashicorp.com/terraform/language/functions/jsonencode 链接中的示例看起来完全符合您的需要。 Terraform 根本没有 JSON 对象的概念。 Terraform 不是 JavaScript。 Terraform 是用 HCL 编写的,具有 HCL 对象。
jsonencode函数可以获取 Terraform 代码中定义的 HCL 对象,并将其转换为 JSON 字符串,用于需要 JSON 字符串的资源。