来自 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 文件
我有 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 文件