Azure Terraform plan在数据元素上失败,错误地声称它们没有';不存在

Azure Terraform plan在数据元素上失败,错误地声称它们没有';不存在,azure,terraform,Azure,Terraform,我正在mac os上运行Terraform v0.12.16。我有一个引用azure数据查找的terraform文件: provider "azurerm" { version = "=1.37.0" } terraform { backend "azurerm" { storage_account_name = "tfstate" container_name = "tfstate" key = "terrafor

我正在mac os上运行Terraform v0.12.16。我有一个引用azure数据查找的terraform文件:

provider "azurerm" {
  version = "=1.37.0"
}

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

/* Pull in shared resources */
data "azurerm_resource_group" "dev" {
  name = "Development"
}

data "azurerm_resource_group" "uat" {
  name = "UAT"
}

data "azurerm_resource_group" "staging" {
  name = "Staging"
}

data "azurerm_resource_group" "prod" {
  name = "Production"
}

data "azurerm_container_registry" "acr" {
  name                = "containerRegistryAU"
  resource_group_name = data.azurerm_resource_group.dev.name
}
当我运行地形平面图时,我得到:

terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

random_integer.ri: Refreshing state... [id=44293]
data.azurerm_dns_zone.staging_ynomia_com: Refreshing state...
data.azurerm_resource_group.dev: Refreshing state...
data.azurerm_resource_group.staging: Refreshing state...
data.azurerm_dns_zone.uat_ynomia_com: Refreshing state...
data.azurerm_resource_group.prod: Refreshing state...
data.azurerm_resource_group.uat: Refreshing state...
data.azurerm_dns_zone.dev_ynomia_com: Refreshing state...
data.azurerm_dns_zone.ynomia_com: Refreshing state...

Error: Error: Resource Group "Development" was not found

  on _main.tf line 27, in data "azurerm_resource_group" "dev":
  27: data "azurerm_resource_group" "dev" {



Error: Error: Resource Group "UAT" was not found

  on _main.tf line 31, in data "azurerm_resource_group" "uat":
  31: data "azurerm_resource_group" "uat" {



Error: Error: Resource Group "Staging" was not found

  on _main.tf line 35, in data "azurerm_resource_group" "staging":
  35: data "azurerm_resource_group" "staging" {



Error: Error: Resource Group "Production" was not found

  on _main.tf line 39, in data "azurerm_resource_group" "prod":
  39: data "azurerm_resource_group" "prod" {



Error: Error: DNS Zone "ynomia.com" was not found

  on _main.tf line 138, in data "azurerm_dns_zone" "ynomia_com":
 138: data "azurerm_dns_zone" "ynomia_com" {



Error: Error: DNS Zone "dev.ynomia.com" was not found

  on _main.tf line 142, in data "azurerm_dns_zone" "dev_ynomia_com":
 142: data "azurerm_dns_zone" "dev_ynomia_com" {



Error: Error: DNS Zone "uat.ynomia.com" was not found

  on _main.tf line 146, in data "azurerm_dns_zone" "uat_ynomia_com":
 146: data "azurerm_dns_zone" "uat_ynomia_com" {



Error: Error: DNS Zone "staging.ynomia.com" was not found

  on _main.tf line 150, in data "azurerm_dns_zone" "staging_ynomia_com":
 150: data "azurerm_dns_zone" "staging_ynomia_com" {
然而,我知道这些资源是存在的:


这已经运行了几个月,所以我对它为什么突然失败感到困惑。如何调试此处发生的情况?

据我所知,可能的原因是您使用了本地Azure CLI当前使用的订阅,但它不是您想要使用的正确订阅

因此,您需要找到资源组所在的正确订阅。然后按如下方式更改地形提供程序:

provider "azurerm" {
  version = "=1.37.0"

  subscription_id = "your_subscription_id"
  tenant_id = "your_tenant_id"
}

它将从订阅和租户中获取您需要使用的资源组

这些资源组都在同一Azure订阅中吗?看起来您的terraform正在验证不正确的订阅。。。