我删除了项目
projects/project1-301106
,然后创建了一个以301108
结尾的新项目。但 terraform 总是尝试使用旧项目。
Error: Error creating Network: googleapi: Error 404: The resource 'projects/project1-301106' was not found, notFound
我删除了 .terraform 目录和文件,运行了
terraform init
。还清除了 gcould 和 reauth 但仍然是相同的错误。
尝试这个解决方案。
删除这些文件和文件夹:
sudo rm -r .terraform .terraform.lock.hcl terraform.tfstate terraform.tfstate.backup
然后:
terraform init
最后:
terraform apply -auto-approve
对我来说,这是由于运行
gcloud auth application-default login
导致的,它使用错误的项目在浏览器选项卡中打开。删除 terraform 文件并没有解决我的问题。
我不使用 Gcloud,但 Terraform Openstack 提供商遇到了类似的问题,给我带来了困难。无论我做了什么,设置 Terraform 变量,删除
.terraform
,删除 terraform.tfstate
和 terraform.tfstate.backup
(顺便说一句,不要这样做!),运行 terraform init
等。我总是最终在错误的项目。
...实际上基础设施总是在我从事的上一个项目中创建的...
所以我偶然发现了问题所在:是一些环境变量在某种程度上产生了干扰(对于 OpenStack 用户来说,这些是以
OS
开头的变量)。我需要这些变量来与 openstack
命令行 API 客户端一起使用。我的解决方案是在使用 Terraform 之前unset
所有“^OS”变量。
我认为 GCloud 可能存在类似问题,因为 Terraform 考虑了一些环境变量(请参阅 provider_reference#provider-default-values-configuration):
GOOGLE_PROJECT
GOOGLE_CLOUD_PROJECT
GCLOUD_PROJECT
CLOUDSDK_CORE_PROJECT
希望这有帮助!