Amazon web services 地形中每个回路的动力输出
我使用的是0.14.2 Terraform版本,我有一个任务,可以动态创建一个资源。下一个任务是:Amazon web services 地形中每个回路的动力输出,amazon-web-services,loops,terraform,amazon-rds,Amazon Web Services,Loops,Terraform,Amazon Rds,我使用的是0.14.2 Terraform版本,我有一个任务,可以动态创建一个资源。下一个任务是: resource "aws_db_instance" "api-mariaDB" { for_each = local.ob identifier = "api-mariadb-${each.key}" allocated_storage = "20"
resource "aws_db_instance" "api-mariaDB" {
for_each = local.ob
identifier = "api-mariadb-${each.key}"
allocated_storage = "20"
storage_type = "gp2"
engine = "mariadb"
engine_version = "10.4.8"
allow_major_version_upgrade = true
auto_minor_version_upgrade = false
instance_class = "db.t2.micro"
name = "ssapi"
username = "admin"
password = "Temporal123"
db_subnet_group_name = aws_db_subnet_group.subnet-mariadb[each.value].name
skip_final_snapshot = true
vpc_security_group_ids = [aws_security_group.rds_SG.id]
tags = {
Name = "api-db-${each.key}"
}
}
使用此本地变量:
locals {
ob = toset([
"es",
"uk",
])
}
此资源使用下一个输出创建2个RDS实例:
aws_db_instance.api-mariaDB["es"] will be created
+ resource "aws_db_instance" "api-mariaDB" {
+ address = (known after apply)
+ allocated_storage = 20
+ allow_major_version_upgrade = true
+ apply_immediately = (known after apply)
+ arn = (known after apply)
.
.
.
我想在两个迭代中访问arn,以便在掌舵图中使用。。我尝试了下一种语法,但没有成功:
output "rds" {
value = {
endpoint = "aws_db_instance.api-mariaDB[each.value].arn"
}
有什么想法吗
谢谢
编辑
我也尝试过这个选项:
output "rds" {
value = {
endpoint = aws_db_instance.api-mariaDB[*].arn
}
}
但我有一个错误:
Error: Unsupported attribute
on rds.tf line 49, in output "rds":
49: endpoint = aws_db_instance.api-mariaDB[*].arn
This object does not have an attribute named "arn".
“*`运算符将允许您从列表中的每个项目中获取一个值。
For each会创建一个映射,因此需要迭代关键点:
output "rds" {
value = {
endpoint = [for o in local.ob: aws_db_instance.api-mariaDB[o]].arn
}
}
“*`运算符将允许您从列表中的每个项目中获取一个值。
For each会创建一个映射,因此需要迭代关键点:
output "rds" {
value = {
endpoint = [for o in local.ob: aws_db_instance.api-mariaDB[o]].arn
}
}
谢谢你的回答。。我也尝试了这个选项,但我得到了一个错误:错误:rds.tf第49行的Unsupported属性,在输出“rds”:49:endpoint=aws_db_instance.api mariaDB[*]。arn这个对象没有名为“arn”的属性。啊,它是一个映射,不是一个列表。我更新了一个补丁。谢谢你的回答。。我也尝试了这个选项,但我得到了一个错误:错误:rds.tf第49行的Unsupported属性,在输出“rds”:49:endpoint=aws_db_instance.api mariaDB[*]。arn这个对象没有名为“arn”的属性。啊,它是一个映射,不是一个列表。我已经更新了一个补丁。