带有 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 计划:
显然有同样的问题,由于某种原因它不会读取第一列,您可以将所有数据右移到一列,将第一列留空。为我工作。
我正在尝试使用 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 计划:
显然有同样的问题,由于某种原因它不会读取第一列,您可以将所有数据右移到一列,将第一列留空。为我工作。