2016-07-27 4 views
3

Я пытаюсь создать модуль в Terraform, который может быть создан несколько раз с различными переменными входами. Внутри модуля, как мне ссылаться на ресурсы, когда их имена зависят от входной переменной? Я пытаюсь сделать это с помощью синтаксиса ("${aws_ecs_task_definition[var.name].arn}"), но я просто догадался об этом.Ссылаясь на ресурсы с именами переменных в Terraform

(Оговорка: я мог бы идти об этом в совершенно неправильный путь)

Вот мой модуля (упрощенно) main.tf файл:

variable "name" {} 

resource "aws_ecs_service" "${var.name}" { 
    name = "${var.name}_service" 
    cluster = "" 
    task_definition = "${aws_ecs_task_definition[var.name].arn}" 
    desired_count = 1 
} 

resource "aws_ecs_task_definition" "${var.name}" { 
    family = "ecs-family-${var.name}" 
    container_definitions = "${template_file[var.name].rendered}" 
} 

resource "template_file" "${var.name}_task" { 
    template = "${file("task-definition.json")}" 

    vars { 
     name = "${var.name}" 
    } 
} 

Я получаю следующее сообщение об ошибке:

Error loading Terraform: Error downloading modules: module foo: Error loading .terraform/modules/af13a92c4edda294822b341862422ba5/main.tf: Error reading config for aws_ecs_service[${var.name}]: parse error: syntax error 

ответ

5

Я был принципиально непонятным, как модули работали.

Терраформ не поддерживает интерполяцию в именах ресурсов (см. relevantissues), но это не имеет значения в моем случае, поскольку ресурсы каждого экземпляра модуля находятся в пространстве имен экземпляра. Меня беспокоило, что имена ресурсов сталкиваются, но система модулей уже справляется с этим.

+0

Кроме того, видимо, вы не можете интерполировать имена ресурсов. (Тем не менее?) –

+1

Поскольку это стоит, это не полезный ответ для кого-либо другого с аналогичной проблемой. Я бы посоветовал вам либо переработать ответ, чтобы объяснить, почему произошла ошибка, и как его исправить (в частности, сосредоточиться на том, что вы не можете интерполировать имена ресурсов) или удалить комманду вопросов/ответов. – ydaetskcoR

+0

@ydaetskcoR, хороший звонок. Я обновил свой ответ, чтобы уточнить, но я также прекрасно разбираюсь в этом вопросе/ответе, если это не полезно никому другому. –

 Смежные вопросы

  • Нет связанных вопросов^_^