我正在尝试使用数据文件获取某些数据库的cluster_identifier
和aws_db_snapshot
。我的data.tf文件如下:-
data "aws_rds_cluster" "cluster" {
cluster_identifier = var.rds_sources
}
data "aws_db_snapshot" "db" {
db_instance_identifier = var.rds_sources
most_recent = true
}
其中CCD_ 3是CCD_。但当我做terraform plan
时,我不断遇到:-
Error: Incorrect attribute value type
│
│ on ../data.tf line 2, in data "aws_rds_cluster" "cluster":
│ 2: cluster_identifier = var.rds_sources
│ ├────────────────
│ │ var.rds_sources is a list of string, known only after apply
│
│ Inappropriate value for attribute "cluster_identifier": string required.
╵
╷
│ Error: Incorrect attribute value type
│
│ on ../data.tf line 6, in data "aws_db_snapshot" "db":
│ 6: db_instance_identifier = var.rds_sources
│ ├────────────────
│ │ var.rds_sources is a list of string, known only after apply
│
│ Inappropriate value for attribute "db_instance_identifier": string
│ required.
我的问题是如何使用for循环来获得必要的信息?非常感谢。
你说"对于循环";所以我认为你想使用for_each,尽管你也可以在这里使用count。
data "aws_rds_cluster" "cluster" {
for_each = toset(var.rds_sources)
cluster_identifier = each.key
}
data "aws_db_snapshot" "db" {
for_each = toset(var.rds_sources)
db_instance_identifier = each.key
most_recent = true
}
请注意,您可能需要使用aws_db_cluster_snapshot而不是aws_db_snapshot
,具体取决于您的数据库引擎。