如何为terraform中的每个模块创建资源?

如何为terraform中的每个模块创建资源?,terraform,Terraform,我有一个通用模块,它有: module "foo1" { source = "./modules/bar" name = "foo1" id = "123" } module "foo2" { source = "./modules/bar" name

我有一个通用模块,它有:

module "foo1" {
  source            = "./modules/bar"
  name              = "foo1"
  id                = "123"
}

module "foo2" {
  source            = "./modules/bar"
  name              = "foo2"
  id                = "456"
}
如上面所示,其他两个模块正在引用它。问题是,这个模块栏生成了一个带有电子邮件的资源:
google\u service\u account.service\u account.email
,我想用它来创建一堆其他资源,但我只想为
foo1
而不是
foo2
bar
模块同时使用
name
id
vars来生成电子邮件)。如何从中排除
foo2

// needs to be created using the email generated for `foo1` only
resource "google_project_iam_member" "admin" {
  ...
  member = "serviceAccount:${google_service_account.service_account.email}"
}

如果我正确理解了您的问题,您可以使用来有条件地创建项目:

resource "google_project_iam_member" "admin" {
 
  count = var.name == "foo1" ? 1 : 0

  ...
  member = "serviceAccount:${google_service_account.service_account.email}"
}
name
foo1
时,上面将创建
google\u project\u iam\u member.admin

resource "google_project_iam_member" "admin" {
 
  count = var.name == "foo1" ? 1 : 0

  ...
  member = "serviceAccount:${google_service_account.service_account.email}"
}