Terraform:如何将地图存储在单个 ssm 参数中并取回值对?

问题描述

假设我有一张这样的地图:

variable "test_parameters" {
type = map
default = {
"A" = "subnet-73e35d3e","B" = "subnet-7e00d503","C" = "subnet-d9d446b2",}

}

什么是terraform-code

  1. 将地图的值存储在单个 aws_ssm_parameter 中?
  2. 从参数中获取单个值,例如:B = subnet-7e00d503 或 B:subnet-7e00d503 ?

非常感谢您的帮助;)

解决方法

您可以将其存储为 json,然后取回 json。

resource "aws_ssm_parameter" "foo" {
  name  = "myparam"
  type  = "String"
  value = jsonencode(var.test_parameters)
}

阅读:

data "aws_ssm_parameter" "foo" {
  name = "myparam"
}

# to use 

locals {
  myparam_values = jsondecode(data.aws_ssm_parameter.foo.value)
}