amazon-web-services - terraform :尚未声明名为“AMI”的输入变量。这个变量可以用变量“AMI”{}块声明
问题描述
我是 terraform 的新手。我正在尝试 terrafrom
我在 var.tfvars 中有这个位
variable "AWS_REGION" {
default = "me-south-1"
}
variable "AMI" {
type = "map"
default ={
me-south-1 = "ami-01b735b798*******"
us-east-1 = "ami-0c2a1acae666******"
}
}
我正在尝试在 VPC 中创建一个 ec2
resource "aws_instance" "terraform-web" {
ami = "${lookup(var.AMI, var.AWS_REGION)}"
instance_type = "t3.micro"
这给了我上述错误。
谁能帮我解决这个问题?
解决方案
terraform 的工作方式是:
variables.tf -- 所有变量都在这个文件中声明
vars.tfvars——所有值都通过这个文件传递。名字可以是任何东西。应该以 tfvars 结尾。
您不需要使用查找 var.<variable_name> 就足够了!
ec2.tf:
resource "aws_instance" "terraform-web" {
ami = var.ami_id
instance_type = "t3.micro"
}
变量.tf
variable "ami_id" {
type = "string"
default = "xxxx"
}
变量.tfvars
ami_id = "yyyyy"
推荐阅读
- javascript - 使用 JS 画布创建轨道武器精灵会产生动画错误/故障
- parsing - 使用 awk 和 grep 获取挂载点
- sql - 如何根据分区 - sql分配支出金额?
- java - 如何通过结构中的位置获取 BlockEntity?
- javascript - 使用 history.push(/url) onlick 后 /url 页面中的 Javascript 函数不起作用
- python - 如何在 matplotlib 聊天中制作二级标签?
- html - 内的 CSS标签
- algorithm - 对连接线列表进行排序的最佳方法
- html - 如何配置 stylelint 禁止所有 HTML 标签
- python-3.x - 非常慢的 numpy OR 操作