我试过让这个工作,但terrraform一直对我大喊大叫。我试图使用循环创建一堆需要引用现有资源id的新资源。然而,terraform似乎不想创建资源。
注意这里使用了terraform pagerduty提供程序
我的网站列表
locals {
sites = [
"site1",
"site2"
]
}
My resource block:
resource "pagerduty_service_event_rule" "rule" {
for_each = toset(local.sites)
service = "pagerduty_service.${each.key}.id"
... rest of block
当我运行apply
时,它看起来像是要工作,但它超时了(最终给我一个403错误)。
我已经确定这个问题是因为服务id
的服务资源属性无效,因为它在双引号中。
我怎样才能正确地遍历这个列表来正确地创建这些资源?
Thx
所以我设法弄清楚这一点,它比我预期的要简单得多。我只需要将本地站点list
更改为map
和,而不是在值上使用引号.
locals {
sites = [
site1 = pagerduty_service.site1.id
site2 = pagerduty_service.site2.id
]
}
resource "pagerduty_service_event_rule" "rule" {
for_each = local.sites
service = each.value
... rest of block