我正在使用AWS Route53解析程序将发送到内部域列表的DNS请求转发到内部(内部)列表。通过terraform,我想与公司的其他帐户共享我创建的规则,因此我需要以下内容:
# I create as much share endpoint as domain I have, so If I have 30 domains, I'll make 30 endpoint RAM:
resource "aws_ram_resource_share" "endpoint_share" {
count = length(var.forward_domain)
name = "route53-${var.forward_domain[count.index]}-share"
allow_external_principals = false
}
# Here I share every single endpoint with all the AWS ACcount we have
resource "aws_ram_principal_association" "endpoint_ram_principal" {
count = length(var.resource_share_accounts)
principal = var.resource_share_accounts[count.index]
resource_share_arn = {
for item in aws_ram_resource_share.endpoint_share[*]:
item.arn
}
}
最后一个块调用第一个列表的arn输出。 现在,这最后一个块不起作用,我不知道如何使用多个计数,当我运行它时,出现以下错误:
Error: Invalid 'for' expression
line 37: Key expression is required when building an object.
有什么主意要怎么做吗?
Terraform version: 0.12.23
答案 0 :(得分:0)
在 resource_share_arn 中使用方括号,如下所示:
resource_share_arn = [
for item in aws_ram_resource_share.endpoint_share[*]:
item.arn
]