Terraform创建多个没有重复资源名称的资源



我正在尝试使用Terraform创建许多GitHub存储库。我有以下内容:

terraform {
required_providers {
github = {
source  = "integrations/github"
version = "~> 4.0"
}
}
}
# Configure the GitHub Provider
provider "github" {
token = var.gitub_token
}
# Create the repo
resource "github_repository" "new_repo" {
name        = var.repo_name
visibility = "public"
}

这是第一次完美地工作。不过,我第二次使用不同的repo_name运行它时,它并没有创建新的repo,而是试图修改第一个repo。这似乎是因为new_repo资源名称。我不想每次都要编辑它吗?

我只想要一个。tf我可以随时运行新的回购。如何对多个资源名称执行此操作?

发生这种情况是因为您不断修改github_repository.new_repo的同一实例。如果你真的不想把项目分成不同的文件夹,你可以使用工作区,或者使用for_eachcount,其中repo_name将是list。例如:

terraform {
required_providers {
github = {
source  = "integrations/github"
version = "~> 4.0"
}
}
}
variable "repo_name" {
default = ["name1", "name2", "name3"]
}
# Configure the GitHub Provider
provider "github" {
token = var.gitub_token
}
# Create the repo
resource "github_repository" "new_repo" {
for_each   = toset(var.repo_name)  
name       = each.key
visibility = "public"
}

这样,当您添加或删除新的回购时,必须更新var.repo_name

最新更新