gpt4 book ai didi

amazon-web-services - 使用 Terraform for_each 创建动态资源

转载 作者:行者123 更新时间:2023-12-04 01:16:53 25 4
gpt4 key购买 nike

我想使用 Terraform 创建 AWS SSM 参数,并将参数作为输入变量传入。
我看到有一个 for_each 功能,但是如何将其应用于 terraform 资源中的顶级属性?从文档中,for_each 的使用似乎仅限于不能在资源的顶级属性上工作,我误解了吗?
这就是我想要完成的:
主文件

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
]
}
}
}
变量.tf
variable "params" {
default = [
{
name = "albUrl"
paramValue = "testa"
},
{
name = "rdsUrl1"
paramValue = "testb"
},
{
name = "rdsUrl2"
valparamValueue = "testc"
},
]
}

最佳答案

您可以使用 for each,但您需要修改其语法并修复 var.params 中的语法:

variable "params" {
default = [
{
name = "albUrl"
paramValue = "testa"
},
{
name = "rdsUrl1"
paramValue = "testb"
},
{
name = "rdsUrl2"
paramValue = "testc"
},
]
}
然后为每个使用,并创建 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
}
在上面,您必须将列表( map )投影到 map ,因为 for_each 需要它。

关于amazon-web-services - 使用 Terraform for_each 创建动态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63210077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com