Terraform:从 aws ssm 参数存储区读取值时出现问题
Terraform: Issue while reading value from aws ssm parameter store
我希望从 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 计划给出以下错误:
**"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\"}"
data.aws_ssm_parameter.lambda_env.value
是一个 JSON 格式的字符串。您需要使用 jsondecode
函数将其转换为地图。 tomap
将 HCL2 类型转换为 map
.
lambda_env_vars = jsondecode(data.aws_ssm_parameter.lambda_env.value)
我希望从 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 计划给出以下错误:
**"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\"}"
data.aws_ssm_parameter.lambda_env.value
是一个 JSON 格式的字符串。您需要使用 jsondecode
函数将其转换为地图。 tomap
将 HCL2 类型转换为 map
.
lambda_env_vars = jsondecode(data.aws_ssm_parameter.lambda_env.value)