Позволяет ли Terraform переопределять ресурсы из модулей?

#amazon-web-services #terraform

#amazon-web-services #terraform

Вопрос:

У меня есть модуль Terraform, в котором я хотел реорганизовать EFS, чтобы он управлялся в модуле, а не в Terraform, который у меня есть в настоящее время. В настоящее время мой Terraform включает в себя два VPC, совместно использующих EFS с использованием однорангового соединения VPC.

В конце концов, я хочу избавиться от старого VPC, но EFS все еще удерживается старым VPC. EFS не позволяет создавать aws_efs_mount_target на другом VPC.

 
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:

Вот как я это решил. В основном создайте новую переменную и используйте ее в качестве условия для создания пустого набора.

 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
}