Terraform интерполяция в файл json, когда json требует, чтобы значение было целым - PullRequest
0 голосов
/ 25 апреля 2018

Попытка решить, возможно ли это или нет. Траловая документация терраформ безрезультатна (не сильно удивляет).

Возьмите приведенный ниже пример очень тонкой линии.

[
  {
    "cpu": "${var.master_container_cpu}",
  }
]

Приписывается к этому параметру tf при вызове aws_ecs_task_definition resource;

container_definitions = "${file("task-definitions/example.json")}"

приведет к следующей ошибке;

Error: aws_ecs_task_definition.example-task: ECS Task Definition container_definitions is invalid: Error decoding JSON: json: cannot unmarshal string into Go struct field ContainerDefinition.Cpu of type int64

любая помощь более чем приветствуется:)

1 Ответ

0 голосов
/ 25 апреля 2018

Похоже, вы должны использовать шаблон для компиляции JSON перед использованием в определении

data "template_file" "task" {
  template = "${file("${task-definitions/example.json")}"

  vars {
    cpu = "${var.master_container_cpu}"
  }
}

В файле JSON вы можете ссылаться на переменную, используя ${cpu}

Тогда вы можете использовать вывод в качестве определения

container_definitions = "${data.template_file.task.rendered}"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...