0

我正在尝试使用 CSV 文件访问 terraform 变量数据,创建资源组并将资源组的名称添加到 CSV 文件中并尝试访问代码。

这是代码:

locals {
  Resource_groupname = csvdecode(file("${path.module}/onkar.csv"))
}

//Create a resource group
resource "azurerm_resource_group" "Customer11" {
  count    = length(local.Resource_groupname)
  name     = local.Resource_groupname[count.index].resourcegroup_name
  location = "North europe"
}

我收到以下错误:

on admin.tf line 15, in resource "azurerm_resource_group"
"Customer11":   15:   name     =
local.Resource_groupname[count.index].resourcegroup_name
     |----------------
     | local.Resource_groupname is list of object with 1 element
This object does not have an attribute named "resourcegroup_name".

更新

这是错误 SS

CSV 文件

Updated Code: 

  locals {
  Resource_groupname = csvdecode(file("./test.csv"))
  }
  resource "azurerm_resource_group" "Customer11" {
  count    = length(local.Resource_groupname)
  name     = local.Resource_groupname[count.index].group_names 
  location = "North europe"
  }

新更新

 locals {
      Resource_groupname = csvdecode(file("./test.csv"))
    }

    resource "azurerm_resource_group" "Customer11" {
      count    = length(local.Resource_groupname)
      name     =  local.Resource_groupname[count.index].Resource_groupname   
      location = "North europe"
    }

新的更新 CSV 文件和输出

错误

CSV 文件

4

2 回答 2

1

要从 CSV 文件加载输入,我假设您的 CSV 文件只有一行,它看起来像这样:

test1,test2,test3

然后您可以从 CSV 文件中加载和使用它们,如下所示:

locals {
  group_names = split(",", file("./test.csv"))
}

resource "azurerm_resource_group" "Customer11" {
  count    = length(local.group_names)
  name     = local.group_names[count.index]
  location = "North europe"
}

如果您像这样使用 CSV 文件:

resource_group_name
test1
test2
test3

然后 terraform 代码应更改为:

locals {
  group_names = csvdecode(file("./test.csv"))
}

resource "azurerm_resource_group" "main" {
  count       = length(local.group_names)
  name        = local.group_names[count.index].resource_group_name
  location    = "East US"
}

更新:

使用您提供的 CSV 文件,您需要更改资源组名称,如下所示:

resource "azurerm_resource_group" "Customer11" {
  count    = length(local.Resource_groupname)
  name     = local.Resource_groupname[count.index].group_names   # here is the change
  location = "North europe"
}

这是 CSV 文件的屏幕截图:

在此处输入图像描述

当您从 CSV 文件加载数据时,您可以尝试输出local.Resource_groupname以查看它的外观。

更新2

我真的不明白为什么你不知道该怎么做。这是我对所有东西的测试截图,希望你能解决它:

Terraform 文件和 CSV 的内容。

在此处输入图像描述

Terraform 计划:

在此处输入图像描述

于 2020-04-03T07:16:09.433 回答
0

显然有同样的问题,由于某种原因它不会读取第一列,您可以将所有数据向右移动一列,将第一列留空。为我工作。

于 2021-08-18T11:40:52.853 回答