terraform заменить переменную внутри json - PullRequest
0 голосов
/ 07 августа 2020

Я создаю сервер rds, используя terraform. Я передаю группу опций, используя переменную списка. Параметры группируют переменную в variable.tf, как показано ниже

options = [
   {
    option_name = "SQLSERVER_BACKUP_RESTORE"

    option_settings=[
      {
      name  = "IAM_ROLE_ARN"
      value = "${role_arn}"
    },
  ]
},

Я хочу заменить переменную "$ {role_arn}" в main.tf. Может ли кто-нибудь помочь с синтаксисом?

1 Ответ

1 голос
/ 07 августа 2020

Я решаю эту проблему, используя файлы шаблонов terraform .

  1. Переместите json в отдельный файл;
  2. обновите yout json для использования синтаксиса шаблона Terraform ;
  3. добавить ресурс данных для рендеринга и анализа вашего шаблона;
  4. сослаться на ваш визуализированный шаблон в вашем ресурсе.

Допустим, вам понадобится что-то вроде:

resource "provider_resource" "name" {
  property = "value"
  options = [
    {
      option_name = "SQLSERVER_BACKUP_RESTORE"
      option_settings = [
        {
          name  = "IAM_ROLE_ARN"
          value = "${role_arn}"
        },
      ]
    }
  ]
}

после изменения у вас будет что-то вроде:

data "template_file" "json_template" {
  template = file("path/to/file.json")
  vars = {
    role_arn = var.dynamic_value
  }
}

resource "provider_resource" "name" {
  property = "value"
  options = data.template_file.json_template.rendered
}
...