【问题标题】:Terraform key does not identify an element in this collectionTerraform 键未标识此集合中的元素
【发布时间】:2021-05-15 13:37:45
【问题描述】:

我正在关注terraform tutorial on using variables in AWS

它定义了 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] 正确设置变量?

【问题讨论】:

  • 是否已定义 var.region 并且是您的密钥之一?

标签: terraform terraform-provider-azure


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2022-07-12
    • 2021-08-20
    • 2021-08-25
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2017-03-30
    相关资源
    最近更新 更多