无法从远程状态数据源读取输出属性



我是Terraform的新手,所以我会尽我所能解释。Terraform 不会从状态文件中读取变量/输出,也不会在另一个文件中使用该值。

我尝试在互联网上搜索我能找到的所有内容,看看是否有人遇到过这个问题以及他们是如何解决的。

###vnet.tf
#Remote State pulling data from bastion resource group state
data "terraform_remote_state" "network" {
backend = "azurerm"
config = {
storage_account_name = "terraformstatetracking"
container_name       = "bastionresourcegroups"
key                  = "terraform.terraformstate"
}
}
#creating virtual network and putting that network in resource group created by bastion.tf file
module "quannetwork" {
source              = "Azure/network/azurerm"
resource_group_name = "data.terraform_remote_state.network.outputs.quan_netwk"
location            = "centralus"
vnet_name           = "quan"
address_space       = "10.0.0.0/16"
subnet_prefixes     = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
subnet_names        = ["subnet1", "subnet2", "subnet3"]
tags                = {
environment = "quan"
costcenter  = "it"
}
}
terraform {
backend "azurerm" {
storage_account_name  = "terraformstatetracking"
container_name        = "quannetwork"
key                   = "terraform.terraformstate"
}
}
###resourcegroups.tf
# Create a resource group
#Bastion
resource "azurerm_resource_group" "cm" {
name     = "${var.prefix}cm.RG"
location = "${var.location}"
tags     = "${var.tags}"
}
#Bastion1
resource "azurerm_resource_group" "network" {
name     = "${var.prefix}network.RG"
location = "${var.location}"
tags     = "${var.tags}"
}
#bastion2
resource "azurerm_resource_group" "storage" {
name     = "${var.prefix}storage.RG"
location = "${var.location}"
tags     = "${var.tags}"
}
terraform {
backend "azurerm" {
storage_account_name  = "terraformstatetracking"
container_name        = "bastionresourcegroups"
key                   = "terraform.terraformstate"
}
}
###outputs.tf
output "quan_netwk" {
description = "Quan Network Resource Group"
value       = "${azurerm_resource_group.network.id}"
}

运行vnet.tf代码时,它应读取存储在 Azure 后端存储帐户状态文件文件中的outputs.tf的输出,并将该值用于quannetwork模块中的resource_group_name。而是创建一个名为data.terraform_remote_state.network.outputs.quan_netwk的资源组。任何帮助将不胜感激。

首先,需要在模块quannetwork中输入resource_group_name的字符串,而不是资源组 Id。

其次,如果你想在远程状态下引用某些东西,不要只把它放在双引号中,下面的正确格式:

resource_group_name = "${data.terraform_remote_state.network.outputs.quan_netwk}"

最新更新