azure Параметр Terraform с файлом CSV - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь получить доступ к переменным данным terraform, используя файл CSV, создаю группу ресурсов и добавляем имя группы ресурсов в файл 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 файл

1 Ответ

0 голосов
/ 03 апреля 2020

Чтобы загрузить входные данные из 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-файла:

enter image description here

Вы можете попробовать вывести local.Resource_groupname, чтобы посмотреть, как он выглядит при загрузке данных из файла CSV.

Обновление2

Я действительно не понимаю, почему вы не можете понять, как это сделать. Вот скриншот моего теста для всех вещей, надеюсь, вы решите его:

Содержимое файла Terraform и CSV.

enter image description here

План Terraform:

enter image description here

...