带有 CSV 文件的 azure Terraform 参数

azure Terraform parameter with CSV file

我正在尝试使用 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".

已更新

This is error SS

CSV file

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 文件和输出

Error

CSV file

要从 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 文件的屏幕截图:

您可以尝试输出 local.Resource_groupname 以查看从 CSV 文件加载数据时的样子。

更新2

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

Terraform 文件和 CSV 的内容。

Terraform 计划:

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