terraform:创建新实例还是升级现有实例?

terraform : creating a new instance or upgrade the existing one?

我正在尝试升级 google 云作曲家。 terraform 如何识别我要升级现有实例或创建新实例?我在 tf 文件的什么地方指定它?

terraform {
  backend "gcs" {
    bucket  = "tf-state-prod"
    prefix  = "terraform/state"
  }
}

如果我将前缀更改为不同的文件路径 prefix = "terraform/new_state" ,它会创建一个新实例吗?

TF 将其管理的基础设施的当前状态 存储在state file 中。您对 TF 代码所做的任何更改都将与状态文件中存储的内容进行比较。 TF可以据此决定哪些资源发生了变化,哪些被添加了,哪些被移除了。

您在此处包含的代码示例用于后端配置,它是 Terraform 配置根模块的一个特殊部分,因为它不是为 Terraform 声明要创建的某些基础结构,而是告诉 Terraform 在哪里存储其元数据关于托管基础设施。

如果您更改了 backend "gcs" 块的任何部分,那么您将需要使用 terraform init 重新初始化您的工作目录。当您这样做时,Terraform 会注意到您更改了设置,并且默认情况下会提示您决定是否要将现有状态快照迁移到新位置。

如果您打算从同一配置中获得多个“最新”状态快照,那么您可能希望使用 Workspaces to achieve that, though be sure to consider the advice in When to use Multiple Workspaces 来查看是否推荐将其作为适合您的基本目标的解决方案。该部分包括一些更适合其他情况的替代方法。