Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
azure Terraform参数与CSV文件_Terraform_Terraform Provider Azure_Terraform Provider Openstack - Fatal编程技术网

azure Terraform参数与CSV文件

azure Terraform参数与CSV文件,terraform,terraform-provider-azure,terraform-provider-openstack,Terraform,Terraform Provider Azure,Terraform Provider Openstack,我试图使用CSV文件访问地形变量数据,将创建资源组和资源组的名称添加到CSV文件中,并尝试访问代码 代码如下: locals { Resource_groupname = csvdecode(file("${path.module}/onkar.csv")) } //Create a resource group resource "azurerm_resource_group" "Customer11" { count = length(local.Resource_group

我试图使用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".
更新

新更新

 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文件加载输入,我假设您的CSV文件只有一行,它如下所示:

test1,test2,test3
resource_group_name
test1
test2
test3
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文件中加载并使用它们,如下所示:

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文件:

test1,test2,test3
resource_group_name
test1
test2
test3
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"
}
然后,地形代码应更改为:

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文件,您需要更改资源组名称,如下所示:

test1,test2,test3
resource_group_name
test1
test2
test3
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\u groupname
以查看从CSV文件加载数据时的外观

更新2

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

地形文件和CSV的内容

地形图:


错误很明显:您没有名为
local.Resource\u groupname.resourcegroup\u name的对象,您只定义了名为
local.Resource\u groupname的对象。此
资源组\u name
来自何处?资源组名称来自CSV文件我已将名称存储在CSV文件中,资源组名称为列名。CSV文件看起来如何?与excel相同扩展名为CSV UTF-8(逗号分隔)格式第二个代码显示了相同的错误agian@Charles XU错误:在资源“azurerm_资源_组”“main”中的admin.tf第14行不支持的属性:14:name=local.group_names[count.index].resource_group_name |------------------------------| local.group_name是包含3个元素的对象列表此对象没有名为“resource_group_name”的属性。我已尝试了这两个代码,但再次显示相同的错误。第一个代码显示以下错误,我已按照您的方法保存CSV文件内容。错误:“名称”在资源“azurerm_资源_组”“Customer11”:12:resource“azurerm_资源_组”“Customer11”的admin.tf行上只能包含字母数字字符、破折号、下划线、括号和句点@terraform ninja只显示CSV文件。如果没有消息,我无法理解它。我已经添加了与您在第二个解决方案顶部提供的内容相同的内容,如resourcegroup name和thet,在一列中添加数据,如test1、test2、test3,然后将excel文件另存为CSV UTF-8(逗号分隔)格式化…@terraform ninja您所说的test1、test2、test3的值应该在每一行中输入,而不是在一行中输入。是吗?我需要再说一次,名称
group\u names
locals
块中的数组名称。
资源\u group\u name
是您在CSV文件第一行中设置的名称。