Ответ
Приоритет переменных в Terraform (от высшего к низшему):
- Переменные окружения (
TF_VAR_<имя>): Наивысший приоритет. Удобно для секретов или значений, специфичных для среды CI/CD.export TF_VAR_instance_type="t2.large" terraform apply - Аргумент командной строки (
-varили-var-file): Имеет приоритет над файлами, загружаемыми автоматически.terraform apply -var="instance_type=t2.large" - Файлы переменных, загружаемые автоматически: Файлы с именами
terraform.tfvarsили*.auto.tfvars(в алфавитном порядке). - Значения по умолчанию в блоке
variable: Используются, если значение не предоставлено ни одним из вышеперечисленных способов.
Пример для наглядности:
variables.tf:
variable "region" {
description = "AWS region"
default = "us-east-1" # Самый низкий приоритет (4)
}
terraform.tfvars:
region = "eu-west-1" # Приоритет (3), переопределит default
Если теперь выполнить команду с переменной окружения:
export TF_VAR_region="ap-southeast-1"
terraform apply # Будет использовано "ap-southeast-1" (приоритет 1)