如何在azure中管理terraform状态文件以防止删除和替换

如何在azure中管理terraform状态文件以防止删除和替换,azure,terraform,Azure,Terraform,如何在azure中管理terraform状态文件以防止删除和替换, 就像手臂模板一样。 我正在使用terraform和terraform plan部署VM,apply正在替换 每次都是我的虚拟机。您可以将Terraform状态存储在Azure存储中,在执行任何写入状态的操作之前,Azure存储Blob会自动锁定 如果是这样,您将配置状态后端。运行terraforminit命令时,将配置Terraform状态后端。配置状态后端需要以下数据: 存储\帐户\名称:Azure存储帐户的名称 容器\u

如何在azure中管理terraform状态文件以防止删除和替换, 就像手臂模板一样。 我正在使用terraform和terraform plan部署VM,apply正在替换
每次都是我的虚拟机。

您可以将Terraform状态存储在Azure存储中,在执行任何写入状态的操作之前,Azure存储Blob会自动锁定

如果是这样,您将配置状态后端。运行
terraforminit
命令时,将配置Terraform状态后端。配置状态后端需要以下数据:

  • 存储\帐户\名称:Azure存储帐户的名称
  • 容器\u name:blob容器的名称
  • :要创建的状态存储文件的名称
  • 访问密钥:存储访问密钥
这里有一个例子

terraform {
  backend "azurerm" {
    resource_group_name   = "tstate"
    storage_account_name  = "tstate09762"
    container_name        = "tstate"
    key                   = "terraform.tfstate"
  }
}

resource "azurerm_resource_group" "state-demo-secure" {
  name     = "state-demo"
  location = "eastus"
}

实际上,我已经完成了此配置,但在运行terraform时,它正在替换我不想要的资源。例如,如果我在一个部署中部署vm1,在另一个部署中部署vm2,它将替换基于状态代码的vm1Terraform运行。如果要在不替换状态文件中现有资源的情况下启动另一个部署,可以在我的回复中更改
,并在blob存储中重新创建一个新的状态文件。这就是你所期望的吗?