我需要在SSM参数存储中存储与同一环境相关的多个值。最佳实践是什么?是否将值与单个参数一起存储?或者将所有内容都存储在一个参数中?
当我单独存储它时,使用下面的terraform代码可以非常直接地获得值。
SSM参数foo
bardata "aws_ssm_parameter" "ssm_parameters" {
for_each = var.ssm_parameters
name = each.key
}
output "ssm_parameters" {
value = tolist([
for ssm_parameter in data.aws_ssm_parameter.ssm_parameters : ssm_parameter.value
])
}输出:
➜ aws_ssm git:(add/ssm_resources) ✗ terraform apply -var-file="test.tfvars"
data.aws_ssm_parameter.ssm_parameters["foo"]: Refreshing state...
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
ssm_parameters = [
"bar",
]当我将所有值存储在一个参数中时。有没有一种方法可以获得基于特定键的值?例如,如果我存储如下所示的值,是否有一种方法可以只获取server2值?还是server1 eth1 value?
SSM参数foo
[
{
server1_eth0 = “server_ip1"
server1_eth1 = “server_ip2"
server2 = “server2_ip"
server3 = “server3_ip"
}
]发布于 2021-04-03 07:03:55
下面的方法帮助我解决了这个问题。谢谢,@Marcin,@Matt Schuchard
参数值:
"server_ips":
{
"server1":"10.1.21.1",
"server2":"10.1.22.1",
"server3":"10.1.23.1"
}
}代码是
output "ssm_parameters" {
value = jsondecode(data.aws_ssm_parameter.ssm_parameters.value)["server_ips"].server3
}输出为
Outputs:
ssm_parameters = 10.1.23.1https://stackoverflow.com/questions/66829058
复制相似问题