当使用Terraform生成JSON文档类型时(例如用于策略文档),它将默认提供漂亮的缩进,如:
{
"Version":"2021-01-27",
"ArrayOfThings": [
"Thing",
"OtherThing",
]
}
但是,AWS中的某些文档类型有大小限制。是否有一种方法可以控制Terraform生成的文档的输出格式(即不是terraform --json
输出,而是文档本身的一个步骤)?
理想情况下,我想使用Terraform提供程序(它有一个json输出),然后通过一个minifier连接,所以它最终会被发布到AWS:
{"Version":"2021-01-27","ArrayOfThings":["Thing","OtherThing"]}
我想明确使用的Hashicorp地形规则是aws_iam_policy_document
,它有一个.json
输出。是否有一个等效的.jsonCompressed
或另一个terrform规则,我可以使用aws_iam_policy_document
的输出来减少JSON输出?
我遇到了一个类似的问题:加载一个格式良好的JSON文件,然后在我的Terraform脚本中使用它的缩小版本。
地形配置语言函数jsonencode和jsondecode做到了:
minified_string = jsonencode(jsondecode(file("my-pretty-file.json")))
我希望这对你有帮助。