terraform - 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]
?
解决方案
您需要定义变量var.region
,或者您可以在计划/应用期间将值传递给terraform plan -var 'region=us-west-2'
变量terraform apply -var 'region=us-west-2'
推荐阅读
- javascript - 如何将按钮从不喜欢的角度更改为最喜欢的
- oracle - 带有下一个和上一个按钮的 Oracle 表单 11g / 12c
- java - 使用 ELKI 的 dbscan 可视化结果
- python - 如果列表中的子字符串//pythonic方式,python替换字符串中的子字符串
- laravel - 如何使用不同的数据库名称使用默认的 laravel 身份验证更改?
- c++ - 具有多种可行类型的模板重载解决方案
- java - Int 不能转换为二进制字符串
- javascript - 如何将三个功能合并为一个功能以执行相同的功能?
- python - 我无法使用 pip3 install Jinja 在 Pycharm 中安装 Jinja。如何解决这个错误?
- ssis - SSIS 在另一台服务器上执行