Terraform后端空状态

Terraform后端空状态,terraform,Terraform,我在terraform上经历了一种奇怪的行为。我一直在做infra。我已将后端状态配置为在azure中的存储帐户中声明我的状态文件。直到昨天一切都很好,今天早上当我试图更新我的infra时,terraform plan的输出很奇怪,因为它试图将所有资源创建为新的,当我检查我的本地测试时..它是空的 我尝试了terraform pull和terraform refresh但是什么都没有,结果还是一样。我检查了我的远程状态,我仍然声明了所有资源 所以我选择了方案b,复制并粘贴我的远程状态到我的本地项

我在terraform上经历了一种奇怪的行为。我一直在做infra。我已将后端状态配置为在azure中的存储帐户中声明我的状态文件。直到昨天一切都很好,今天早上当我试图更新我的infra时,
terraform plan
的输出很奇怪,因为它试图将所有资源创建为新的,当我检查我的本地测试时..它是空的

我尝试了
terraform pull
terraform refresh
但是什么都没有,结果还是一样。我检查了我的远程状态,我仍然声明了所有资源

所以我选择了方案b,复制并粘贴我的远程状态到我的本地项目中,然后再次运行terraform,但什么都没有,terraform似乎忽略了我本地的terraform状态,不想拉远程状态

编辑: 这是我的terraform后端的结构:

terraform {
  backend "azurerm" {
    resource_group_name  = "<resource-group-name>"
    storage_account_name = "<storage-name>"
    container_name       = "<container-name>"
    key                  = "terraform.tfstate"
  }
}
地形{
后端“azurerm”{
资源组名称=“”
存储帐户名称=“”
容器名称=“”
key=“terraform.tfstate”
}
}
奇怪的是,我刚刚使用terraform为另一个项目创建了8个资源,它确实创建了所有东西,并在没有任何问题的情况下更新了我的后端状态。问题只在于旧资源


有什么帮助吗?

如果您运行
terraform workspace show
您是否在默认工作区? 如果您在本地拥有tfstate,但不在正确的工作区上,terraform将忽略它:

还可以查看您的后端文件结构吗

编辑: 我不知道为什么它会忽略您的远程状态,但我认为您的问题是,当您运行terraform refresh时,它会忽略您的本地文件,因为您有一个远程配置:

用法:地形刷新[选项]

-state=path-读取和写入状态文件的路径。默认为“terraform.tfstate”。使用远程状态时被忽略。

-state out=path-写入更新状态文件的路径。默认情况下,将使用-state路径。使用远程状态时被忽略。


有可能看到您的
地形州拉力输出吗?

你好,哈伦,非常感谢您的回复。是的,我在默认工作区中。我将更新我的帖子并添加terraform BackendMate。非常感谢您的时间和帮助。我不知道该如何开始单独工作。没问题,谢谢你的支持!