Терраформ | переменная instance_type в модуле должна иметь тип string, полученный map - PullRequest
0 голосов
/ 07 июня 2019

Я получаю ошибку ниже, когда пытаюсь использовать блок данных для AMI: -

Ошибка: module.ec2-wf.var.instance_type: переменная instance_type в модуле ec2-wf должна иметь тип string, получил карту Ошибка: module.ec2-wf.var.ami: переменная ami в модуле ec2-wf должна иметь тип string, получил карту make: *** [validate] Ошибка 1

Ниже представлена ​​моя структура терраформы: -

project
    modules
        app1
        app2
        app3
        common
            global-variables.tf
            main.tf
            makefile
            provider.tf
            vpc.tf
        global
            acm
            alb
            asg
            ec2
            efs
            lc
            rds
            redis
            subapp
                ec2
                    main.tf
                    makefile
                    provider.tf
                    variable.tf

project / modules / global / subapp / ec2 / main.tf

module "ec2-wf" {
    source = "../../../global/ec2"

    name                    =   "${var.name}"
    db_remote_state_bucket  =   "s3-terraform-state"
    db_remote_state_key     =   "subapp/ec2/terraform.tfstate"
    key_name                =   "${lookup(var.key_name, terraform.workspace)}"
#    ami                     =   "${lookup(var.ami, terraform.workspace)}"
#    instance_type           =   "${lookup(var.instance_type, terraform.workspace)}"
    ami                     =    "${var.ami}"
    instance_type           =    "${var.instance_type}"

    tags = {
        Name        =   "${var.project}"
        Environment =   "${lookup(var.env, terraform.workspace)}"
    }
}

project / modules / global / ec2 / variables.tf

variable "instance_type" {
    description = "This describes the  Map the environment whether it is dev/test/prd etc"
}

variable "ami" {
    description = "This describes the  Map of Availability Zones to deploy"
    default     =   ""
}

1 Ответ

0 голосов
/ 07 июня 2019

Это выглядит хорошо для меня.Потенциально, похоже, что он смотрит на закомментированные строки по какой-то причине?Поскольку некомментированные версии выглядят хорошо.

#    ami                     =   "${lookup(var.ami, terraform.workspace)}"
#    instance_type           =   "${lookup(var.instance_type, terraform.workspace)}"

Чтобы убедиться, вы всегда можете указать тип (как показано ниже).Если это не сработает, удалите закомментированные строки и посмотрите, происходит ли это по-прежнему.

variable "ami" {
  type = string
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...