Рейтинг:-2

с terraform версии 13 я получаю сообщение об ошибке nvalid default value для переменной в параметрах региона, как это исправить?

флаг ke

переменные.tf

переменная "регион" {
  по умолчанию = "нас-центральный1"
}

переменная "зона" {
  description = "переопределить зону по умолчанию, указанную в region_params"
  по умолчанию = ""
}

переменная "region_params" {
  description = "Карта зон по умолчанию для каждого региона. Можно переопределить с помощью `зоны`."
  тип = карта (строка)

  по умолчанию = {
    азия-восток1 = {
      зона = "Азия-восток1-b"
    }
    азия-восток2 = {
      зона = "Азия-восток2-b"
    }
    азия-северо-восток1 = {
      зона = "Азия-северо-восток1-b"
    }
    азия-юг1 = {
      зона = "Азия-юг1-б"
    }
    азия-юго-восток1 = {
      зона = "Азия-юго-восток1-b"
    }
    австралия-юго-восток1 = {
      зона = "Австралия-юго-восток1-b"
    }
    европа-север1 = {
      зона = "европа-север1-b"
    }
    европа-запад1 = {
      зона = "Европа-запад1-b"
    }
    европа-запад2 = {
      зона = "европа-запад2-b"
    }
    европа-запад3 = {
      зона = "европа-запад3-b"
    }
    европа-запад4 = {
      зона = "европа-запад4-b"
    }
    северная америка-северо-восток1 = {
      зона = "Северная Америка-северо-восток1-b"
    }
    Южная Америка-Восток1 = {
      зона = "южная Америка-восток1-b"
    }
    us-central1 = {
      зона = "us-central1-b"
    }
    сша-восток1 = {
      зона = "us-east1-b"
    }
    сша-восток4 = {
      зона = "us-east4-b"
    }
    сша-запад1 = {
      зона = "us-west1-b"
    }
    сша-запад2 = {
      зона = "us-west2-b"
    }
  }
}

переменная "сеть" {
}

переменная "instance_tags" {
  по умолчанию = []
}

переменная "ip_cidr_range" {
  description = "Диапазон подсети - требуется"
}

переменная "среда" {
  description = "Уровень среды сборки"
  по умолчанию = "разработчик"
}

вывод "nat-шлюз-ip" {
  значение = module.nat.external_ip
}

./terraform0.13 инициализация - переконфигурировать

Есть некоторые проблемы с конфигурацией, описанные ниже.

Конфигурация Terraform должна быть действительна до инициализации, чтобы
Terraform может определить, какие модули и провайдеры необходимо установить.
·
â Ошибка: Недопустимое значение по умолчанию для переменной
✓
✓ в строке 71 variable.tf, в переменной «region_params»:
71: по умолчанию = {
72: азия-восток1 = {
✓ 73: zone = "asia-east1-b"
74: }
75: азия-восток2 = {
✓ 76: zone = "asia-east2-b"
77: }
â 78: азия-северо-восток1 = {
✓ 79: zone = "азия-северо-восток1-b"
80: }
81: азия-юг1 = {
82: зона = "азия-юг1-b"
83: }
â 84: азия-юго-восток1 = {
85: зона = "азия-юго-восток1-b"
86: }
â 87: австралия-юго-восток1 = {
✓ 88: zone = "Австралия-юго-восток1-b"
89: }
â 90: европа-север1 = {
91: zone = "europe-north1-b"
92: }
â 93: европа-запад1 = {
✓ 94: zone = "europe-west1-b"
95: }
â 96: европа-запад2 = {
✓ 97: zone = "europe-west2-b"
98: }
â 99: европа-запад3 = {
✓ 100: zone = "europe-west3-b"
101: }
102: европа-запад4 = {
✓ 103: zone = "europe-west4-b"
104: }
â 105: северная америка-северо-восток1 = {
106: zone = "северо-американский-северо-восток1-b"
107: }
â 108: южная америка-восток1 = {
109: zone = "южная Америка-восток1-b"
110: }
111: us-central1 = {
112: зона = "us-central1-f"
113: }
â 114: us-east1 = {
✓ 115: zone = "us-east1-b"
116: }
â 117: us-east4 = {
✓ 118: zone = "us-east4-b"
119: }
120: us-west1 = {
✓ 121: zone = "us-west1-b"
122: }
â 123: us-west2 = {
✓ 124: zone = "us-west2-b"
125: }
126: }
✓
• Это значение по умолчанию несовместимо с ограничением типа переменной: элемент «asia-east2»: требуется строка.
Рейтинг:1
флаг cn

Попробуйте установить его на us-central-1.Вы неправильно форматируете свои регионы, вам нужно тире перед номером. Кроме того, вам не нужно указывать a, b или c, поскольку terraform получает информацию из настроек вашей подсети.

uday avatar
флаг ke
К сожалению, я не упомянул облако, GCP. Для GCP это структура
флаг cn
Во-вторых, вы, возможно, неправильно используете карту и неправильно ее определяете. Кроме того... я бы не стал определять зону как переменную. Карта подобна массиву, в котором вместо чисел используются имена, поэтому есть две проблемы. Определив зону, вы можете сделать ее и переменной, и индексом карты. Также каждая карта [индекс] (если это правильный термин) должна быть уникальной. Вот пример: https://www.devopsschool.com/blog/terraform-variable-map-type-explained/
флаг cn
Боюсь, я действительно ничего не знаю о GCP. Возможно, вы захотите проверить, используете ли вы актуальную копию terraform, и даже можете удалить .terraform и снова запустить terraform init, чтобы повторно загрузить свои библиотеки.
флаг cn
Недопустимое значение по умолчанию действительно имеет смысл, когда вы сравниваете пример с тем, что у вас есть. Вероятно, это означает, что вы (буквально) неправильно определяете карту по умолчанию.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.