ram*_*123 5 amazon-web-services terraform
我想使用 Terraform 创建 AWS SSM 参数,并将参数作为输入变量传入。
我看到有一个 for_each 功能,但是如何将其应用于 terraform 资源中的顶级属性?从文档来看, for_each 的使用似乎仅限于不适用于资源的顶级属性,我是否误解了?
这就是我想要实现的目标:
主.tf
resource "aws_ssm_parameter" "ssm_parameters" {
for_each = var.params
content {
name = name.value
type = "String"
overwrite = true
value = paramValue.value
tags = var.tags
lifecycle {
ignore_changes = [
tags,
value
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
变量.tf
variable "params" {
default = [
{
name = "albUrl"
paramValue = "testa"
},
{
name = "rdsUrl1"
paramValue = "testb"
},
{
name = "rdsUrl2"
valparamValueue = "testc"
},
]
}
Run Code Online (Sandbox Code Playgroud)
您可以使用每个,但您需要修改其语法并修复语法var.params
:
variable "params" {
default = [
{
name = "albUrl"
paramValue = "testa"
},
{
name = "rdsUrl1"
paramValue = "testb"
},
{
name = "rdsUrl2"
paramValue = "testc"
},
]
}
Run Code Online (Sandbox Code Playgroud)
然后为每个使用,并创建 3 个 ssm 参数:
resource "aws_ssm_parameter" "ssm_parameters" {
for_each = {for v in var.params: v.name => v.paramValue}
type = "String"
name = each.key
value = each.value
overwrite = true
}
Run Code Online (Sandbox Code Playgroud)
在上面,您必须将列表(地图)投影到地图,因为它是for_each
.
归档时间: |
|
查看次数: |
3596 次 |
最近记录: |