terraform:名称为“AMI"的输入变量;尚未宣布.这个变量可以用变量“AMI"来声明.{} 堵塞 [英] terraform :An input variable with the name "AMI" has not been declared. This variable can be declared with a variable "AMI" {} block

查看:9
本文介绍了terraform:名称为“AMI"的输入变量;尚未宣布.这个变量可以用变量“AMI"来声明.{} 堵塞的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 terraform 的新手.我在 terrafrom 上尝试了一下

I am new to terraform. I was trying my bit on terrafrom

我在 var.tfvars 中有这个位

I have this bit in var.tfvars

variable "AWS_REGION" {    
default = "me-south-1"
}
variable "AMI" {
    type = "map"
    
    default ={
        me-south-1 = "ami-01b735b798*******"
        us-east-1 = "ami-0c2a1acae666******"
    }
}

我正在尝试通过

resource "aws_instance" "terraform-web" {
ami = "${lookup(var.AMI, var.AWS_REGION)}"
instance_type = "t3.micro"

这给了我上述错误.

谁能帮我解决这个问题?

Could anyone help me out with this ?

推荐答案

terraform 的工作方式是:

The way terraform works is:

variables.tf -- 所有变量都在这个文件中声明

variables.tf -- all variables are declared in this file

vars.tfvars -- 所有值都通过这个文件传递.名字可以是任何东西.应该以 tfvars 结尾.

vars.tfvars -- all values are passed via this file. Name can be anything. should end with tfvars.

您无需使用查找,只需使用 var.<variable_name>够了!

You don't need to use lookup just var.<variable_name> is enough!

ec2.tf:

    resource "aws_instance" "terraform-web" {
    ami = var.ami_id
    instance_type = "t3.micro"
}

variables.tf

variable "ami_id" {
    type = "string"
    default = "xxxx"

}

vars.tfvars

ami_id = "yyyyy"

这篇关于terraform:名称为“AMI"的输入变量;尚未宣布.这个变量可以用变量“AMI"来声明.{} 堵塞的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆