Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/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
Terraform 从地形图变量中提取关键字/值_Terraform_Terraform Provider Aws - Fatal编程技术网

Terraform 从地形图变量中提取关键字/值

Terraform 从地形图变量中提取关键字/值,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我试图从terraform map变量中提取左值和右值,但无法提取左值。下面是我的代码:- variables.tf variable "notebook" { type = "map" default = { "01" = "a@a.com" "02" = "b@a.com" "03" = "c@a.com" "04" = "d@a.com" ...... } } 下面是我在main.tf中的模块 module "instan

我试图从terraform map变量中提取左值和右值,但无法提取左值。下面是我的代码:-

variables.tf
  variable "notebook" {
    type = "map"
    default = {
    "01" = "a@a.com"
    "02" = "b@a.com"
    "03" = "c@a.com"
    "04" = "d@a.com"
    ......
  }
}
下面是我在main.tf中的模块

 module "instance" {
   instance_ip = ["1.1.1.x", "1.1.2.y", "1.1.1.z","1.1.2.p"]
   dns         = ["x", "y", "z","p"]
   name        = ["a", "b", "c",  "d"]
 }
输出应如下所示:-

 module "instance" {
   instance_ip = ["1.1.1.01", "1.1.2.02", "1.1.1.03","1.1.2.04" and so on]
   dns         = ["01", "02", "03","04" and so on]
   name        = ["a@a.com", "b@a.com", "c@a.com", "d@a.com and so on]
 }

任何建议。我尝试查找变量,但只得到a@a.com而不是键。

您可以使用
功能:

# terraform 0.12
module "instance" {
  instance_ip = ["1.1.1.${keys(var.notebook)[0]}", "1.1.1.${keys(var.notebook)[1]}", "1.1.1.${keys(var.notebook)[2]}"]
  dns         = keys(var.notebook)
  name        = values(var.notebook)
}

# terraform 0.11
module "instance" {
  instance_ip = ["1.1.1.${keys(var.notebook)[0]}", "1.1.1.${keys(var.notebook)[1]}", "1.1.1.${keys(var.notebook)[2]}"]
  dns         = ["${keys(var.notebook)}"]
  name        = ["${values(var.notebook)}"]
}

谢谢@Matt,但在我的情况下,值将超过10/20+。在这种情况下,我需要一行替换,而不是一行一行地写。我们有没有办法把它推广到许多奇偶值。我按照同样的方法更新了我的问题。请检查一下。