0

Terraform新手在这里。我有一个在 GCP 中创建实例的模块。我正在使用变量和 terraform.tfvars 来初始化它们。我成功创建了一个实例 - 比如说 instance-1。但是当我修改 .tfvars 文件以创建第二个实例(除了第一个实例)时,它说它必须销毁第一个实例。如何运行模块以“添加”实例,而不是“替换实例”?我知道创建的第一个实例在 terraform.tfstate 中。但这并不能解释无法“添加”实例。

也许我错了,但我将“模块”(及其配置文件)视为函数——这样我就可以随时使用不同的参数调用它们。情况似乎并非如此。

4

1 回答 1

1

Terraform 将尝试维护与您的资源定义匹配的已部署资源。如果您同时需要两个实例,那么您应该在 .tf 文件中同时描述它们。

前任。相同的实例,将计数添加到您的定义中

resource "some_resource" "example" {
  count = 2
  name = "example-${count.index}"
}

前任。具有特定值的两种不同资源

resource "some_resource" "example-1" {
  name = "example-1"
  size = "small"
}
resource "some_resource" "example-2" {
  name = "example-2"
  size = "big"
}

更好的是,您可以在 tfvars 中为每个资源设置特定值

resource "some_resource" "example" {
  count = 2
  name = "example-${count.index}"
  size = ${vars.mysize[count.index]}
}
variable mysize {}

使用 tfvars 文件:

mysize = ["small", "big"]
于 2019-05-12T14:32:50.433 回答