Terraform是否允许从模块覆盖资源?

时间:2020-10-15 23:59:55

标签: amazon-web-services terraform

我有一个Terraform模块,我想在其中重构EFS,以便在模块中而不是在当前的Terraform中对其进行管理。目前,我的Terraform包括两个使用VPC对等连接共享EFS的VPC。

最终我想摆脱 old VPC,但EFS仍由 old VPC保留。 EFS不允许在其他VPC上创建aws_efs_mount_target


resource "aws_efs_mount_target" "main" {
  for_each = toset(module.docker-swarm.subnets)

  file_system_id = aws_efs_file_system.main.id
  subnet_id = each.key
}

所以我在想,是否有可能按照以下方式设置一些东西

disable {
  module.common.aws_efs_mount_target.main 
}

module "common" {

  exclude = [ "aws_efs_mount_target.main " ]

}

1 个答案:

答案 0 :(得分:0)

这就是我解决的方法。基本上创建一个新变量,并以此为条件创建一个空集。

resource "aws_efs_mount_target" "main" {

  for_each = var.skip_efs_mount_target ? [] : toset(module.docker-swarm.subnets)

  file_system_id = aws_efs_file_system.main.id
  subnet_id = each.key
}