如何在Terraform中传入JSON格式值以配置AWS SSM Parameter Store参数
Terraform 配置 AWS SSM Parameter Store 存入JSON格式值的实现方案
推荐方案:使用Terraform内置jsonencode函数
这是最稳妥的方案,无需手动处理JSON引号转义,Terraform会自动将Terraform对象转换为合法的JSON字符串:
resource "aws_ssm_parameter" "secret" { name = "/something/env" description = "This is a something values" type = "SecureString" // 直接传入要生成JSON的对象,由jsonencode自动序列化 value = jsonencode({ key = "value" }) tags = { environment = "production" } }
如果JSON结构复杂,也可以提前把JSON结构定义为本地变量,再传入jsonencode即可。
备选方案:手动写JSON字符串
如果需要直接手写JSON内容,可以使用heredoc多行字符串格式,可读性更高:
resource "aws_ssm_parameter" "secret" { name = "/something/env" description = "This is a something values" type = "SecureString" value = <<EOF { "key": "value" } EOF tags = { environment = "production" } }
也可以用单行转义写法,适合短JSON场景:
value = "{\"key\": \"value\"}"
验证
配置生效后,在AWS Parameter Store控制台查看对应参数的值,就是标准JSON格式,调用接口读取时也可以直接做JSON反序列化处理。
内容的提问来源于stack exchange,提问作者csaju
相关产品推荐
相关产品推荐

