来自 env 的 Terraform 资源名称

Terraform resource name from env

我有 Django 应用程序,当客户购买我们的应用程序时,我们会用 terrafrom 启动新的 Droplet,当客户离开我们时,我的意思是终止与我们的合同,我们会删除该实例。

但它是手动的,我们通过这个命令删除它terraform destroy digitalocean_droplet.myresourcename

想让每个资源名称都变成unqure,因为,您正在将资源名称保存在我们的数据库中,terrafrom.tfstate 也在我们的数据库中保存。

如果我们不能使资源名称唯一,那么我们也不能创建同名的新实例。这就是为什么我需要它通过 enviroment vairable

这是我的 main.tf 文件

terraform {
  required_providers {
    digitalocean = {
      source = "digitalocean/digitalocean"
      version = "~> 2.0"
    }
  }
}



provider "digitalocean" {
  token = var.do_token
}

resource "digitalocean_droplet" "web" {
  image  = "ubuntu-18-04-x64"
  name   = "web-1"
  region = "nyc3"
  size   = "s-1vcpu-1gb"
  ssh_keys = ["93:4e:299:3d:ee:e1:01"]
}

这是我的 variable.tf 文件

variable "resource_name" {
  type = string
  default = "test"
}

我试过这样命名资源名称

resource "digitalocean_droplet" var.resource_name {
      image  = "ubuntu-18-04-x64"
      name   = "web-1"
      region = "nyc3"
      size   = "s-1vcpu-1gb"
      ssh_keys = ["93:4e:299:3d:ee:e1:01"]
    }

但是它触发了我错误,你能帮我看看我该怎么做吗?>

这是无效的 Terraform 语法。您不能将变量用于资源名称。为此,您必须在 运行 Terraform.

之前通过模板或其他方式生成 .tf 文件