Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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 Azure - Fatal编程技术网

Terraform密钥未标识此集合中的元素

Terraform密钥未标识此集合中的元素,terraform,terraform-provider-azure,Terraform,Terraform Provider Azure,我正在跟踪一个消息 它定义了如下AMI变量: variable "amis" { type = "map" default = { "us-east-1" = "ami-b374d5a5" "us-west-2" = "ami-fc0b939c" } } 然后按如下方式分配AMI变量: resource "aws_instance&quo

我正在跟踪一个消息

它定义了如下AMI变量:

variable "amis" {
  type = "map"
  default = {
    "us-east-1" = "ami-b374d5a5"
    "us-west-2" = "ami-fc0b939c"
  }
}
然后按如下方式分配AMI变量:

resource "aws_instance" "example" {
  ami           = var.amis[var.region]
  instance_type = "t2.micro"
}
如果我以这种方式尝试该示例,则会出现错误:

Error: Invalid index

  on main.tf line 17, in resource "aws_instance" "example":
  17:   ami                    = var.amis[var.region]

The given key does not identify an element in this collection value: string
required.
但是,我可以通过硬编码设置变量:

var.amis["us-west-2"] # <-- this works

var.amis[“us-west-2”]#您需要定义变量
var.region
或者您可以在规划/应用期间将该值传递给变量,作为
terraform plan-var'region=us-west-2'
terraform apply-var'region=us-west-2'

是否定义了
var.region