首页 > 解决方案 > Terraform 键未标识此集合中的元素

问题描述

我正在关注关于在 AWS 中使用变量的 terraform 教程

它定义了 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

我该怎么做才能正确设置变量ami = var.amis[var.region]

标签: terraformterraform-provider-azure

解决方案


您需要定义变量var.region,或者您可以在计划/应用期间将值传递给terraform plan -var 'region=us-west-2'变量terraform apply -var 'region=us-west-2'


推荐阅读