#terraform #terraform-provider-aws
Вопрос:
Я написал ниже конфигурацию серверной части в terraform:
terraform {
backend "s3" {
bucket = "${var.application_name}"
region = "${var.AWS_REGION}"
key = "tf-scripts/${var.application_name}-tfstate"
}
}
при запуске terraform init я получаю сообщение об ошибке ниже:
terraform init
Initializing the backend...
╷
│ Error: Variables not allowed
│
│ on backend.tf line 4, in terraform:
│ 4: bucket = "${var.application_name}"
│
│ Variables may not be used here.
╵
╷
│ Error: Variables not allowed
│
│ on backend.tf line 5, in terraform:
│ 5: region = "${var.AWS_REGION}"
│
│ Variables may not be used here.
╵
╷
│ Error: Variables not allowed
│
│ on backend.tf line 6, in terraform:
│ 6: key = "tf-scripts/${var.application_name}-tfstate"
│
│ Variables may not be used here.
Может ли кто-нибудь помочь мне в достижении того же самого?
Комментарии:
1. Вы не можете использовать переменные в этом месте. Конфигурация должна быть постоянной. Если вы хотите динамически настроить серверную часть, вам нужно написать сценарий-оболочку или предоставить конфигурацию серверной части с помощью аргументов terraform.io/docs/language/settings/backends/…
2. террагрант-это хороший проект, который по сути является оболочкой для терраформирования конфигураций. Вот ссылка на их страницу быстрого запуска: terragrunt.gruntwork.io/docs/getting-started/quick-start Они также упоминают бэкэнды.
3. Здесь мы создаем стек AWS с использованием terraform, где также создается s3, я хочу сохранить конкретное состояние стека tf в корзине s3 того же стека. Любое решение для этого будет оценено по достоинству.
4. Вам просто нужно изменить имя ключа. Если вам нужны разные ресурсы в одном файле состояния, они должны быть частью одного и того же развертывания.
5. Мы можем управлять всеми состояниями в одном бэкэнде s3, но хотим, чтобы ключи создавались только динамически, вероятно, на основе значений временных меток. Я попытался использовать метку времени (), но все равно получил сообщение об ошибке, в котором говорится, что вызовы функций здесь не разрешены. Есть какие-нибудь предположения?