【问题标题】:Terraform: Issue while reading value from aws ssm parameter storeTerraform:从 aws ssm 参数存储读取值时出现问题
【发布时间】:2022-01-21 21:33:05
【问题描述】:

我希望从 aws ssm 参数存储中检索值并分配给 map 类型的变量

AWS SSM parameter store:
 
name: lambda_env
value: {"var1"="value1","var2"="value2","var3"="value3"}


variable.tf:

variable "lambda_env_vars" {
  type    = map(string)
  default = null
}


main.tf:

data "aws_ssm_parameter" "lambda_env" {
  name      = "lambda_env"
  
}

module "lambda" {
  source = "../modules/lambda/"
lambda_env_vars             =  tomap(data.aws_ssm_parameter.lambda_env.value)

}


terraform plan 出现以下错误:

**"Invalid value for "v" parameter: cannot convert string to map of any single type"**

如果我给出直接价值,它工作正常

lambda_env_vars = tomap({"var1"="value1","var2"="value2","var3"="value3"})

data.aws_ssm_parameter.lambda_env.value的输出如下图

outputs:
aws_ssm_var = "{\"var1\"=\"value1\",\"var2\"=\"value2\",\"var3\"=\"value3\"}"

【问题讨论】:

    标签: terraform aws-ssm


    【解决方案1】:

    data.aws_ssm_parameter.lambda_env.value 是 JSON 格式的字符串。您需要使用jsondecode 函数将其转换为地图。 tomap 将 HCL2 类型转换为 map

    lambda_env_vars = jsondecode(data.aws_ssm_parameter.lambda_env.value)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 2019-02-19
      相关资源
      最近更新 更多