Terraform 如何将包含n个元素和字符串的元组组合到列表中?
对于我的AWS备份选择,我尝试在备份选择中添加一个EFS文件系统和两个RDS实例Terraform 如何将包含n个元素和字符串的元组组合到列表中?,terraform,Terraform,对于我的AWS备份选择,我尝试在备份选择中添加一个EFS文件系统和两个RDS实例 resource "aws_backup_selection" "backup" { name = "${var.name}-backup-selection" iam_role_arn = aws_iam_role.backup.arn plan_id = aws_backup_plan.backup.id resources = [ concat([aws
resource "aws_backup_selection" "backup" {
name = "${var.name}-backup-selection"
iam_role_arn = aws_iam_role.backup.arn
plan_id = aws_backup_plan.backup.id
resources = [
concat([aws_efs_file_system.files.arn], aws_rds_cluster_instance.cluster_instances.*.arn)
]
}
显示的“concat”是我已经尝试过的混合错误消息的变体之一。这个给了我这个:
Error: Incorrect attribute value type
on backup.tf line 51, in resource "aws_backup_selection" "backup":
51: resources = [
52: concat([aws_efs_file_system.files.arn], aws_rds_cluster_instance.cluster_instances.*.arn)
53: ]
|----------------
| aws_efs_file_system.files.arn is "arn:aws:elasticfilesystem:eu-central-1:xxx:file-system/fs-xxx"
| aws_rds_cluster_instance.cluster_instances is tuple with 2 elements
Inappropriate value for attribute "resources": element 0: string required.
如何将ARN字符串和两个实例的列表合并为resources元素所需的列表格式
谢谢。由于concat返回一个列表,您可以直接将其分配给资源,而无需附加括号:
resource "aws_backup_selection" "backup" {
name = "${var.name}-backup-selection"
iam_role_arn = aws_iam_role.backup.arn
plan_id = aws_backup_plan.backup.id
resources =
concat([aws_efs_file_system.files.arn], aws_rds_cluster_instance.cluster_instances[*].arn)
}
附加的括号将concat的列表结果转换为列表列表,这不是您想要的
我还将aws\u rds\u cluster\u instance.cluster\u instances.*.arn
转换为aws\u rds\u cluster\u instances.cluster\u instances.[*].arn
,因为[legacy(仅属性)splat表达式已弃用][1]
[1] :l由于concat返回一个列表,因此您可以直接将其分配给资源,而无需附加括号:
resource "aws_backup_selection" "backup" {
name = "${var.name}-backup-selection"
iam_role_arn = aws_iam_role.backup.arn
plan_id = aws_backup_plan.backup.id
resources =
concat([aws_efs_file_system.files.arn], aws_rds_cluster_instance.cluster_instances[*].arn)
}
附加的括号将concat的列表结果转换为列表列表,这不是您想要的
我还将aws\u rds\u cluster\u instance.cluster\u instances.*.arn
转换为aws\u rds\u cluster\u instances.cluster\u instances.[*].arn
,因为[legacy(仅属性)splat表达式已弃用][1]
[1] :l这不是你需要的吗?