Попытка передать переменные terraform через cli
Я пытаюсь передать переменные terraform через CLI, потому что они зависят от моего рабочего процесса действий GitHub. Итак, мой main.tf сейчас выглядит так.
resource "aws_lambda_function" "etl_pipeline_test" {
function_name = var.project_name
image_uri = "${var.ecr_repo_uri}:${var.image_tag}"
package_type = "Image"
role = aws_iam_role.etl_pipeline_test.arn
}
Это просто файл terraform, который создает лямбда-функцию из образа докера ECR. Но я не использую файлvariable.tf, поэтому просто хочу передать ecr_repo_uri и image_tag через cli. Итак, в настоящее время я запускаю эту команду.terraform init && terraform apply -var "ecr_repo_uri=<ecr_repo_uri_var>" -var "image_tag=v0.0"
Чтобы избежать путаницы, существует действительный ecr_repo_uri. Теперь я продолжаю получать эту ошибку.
╷
│ Error: Value for undeclared variable
│
│ A variable named "ecr_repo_uri" was assigned on the command line, but the root module does not declare a variable of that name. To use this value, add a "variable"
│ block to the configuration.
╵
╷
│ Error: Value for undeclared variable
│
│ A variable named "image_tag" was assigned on the command line, but the root module does not declare a variable of that name. To use this value, add a "variable" block
│ to the configuration.
Я думаю, проблема в моем main.tf, возможно, вам нужно обращаться к переменным через cli иначе, чем с помощьюenv.var
как я делаю прямо сейчас. Вся помощь очень ценится.
1 ответ
Я забыл создать файл, в котором вам нужно определить переменные, которые вы передаете с помощью cli. Для других людей, которые могут столкнуться с этой ошибкой, это мой файлvariable.tf.
variable "image_tag" {
type=string
}
variable "ecr_repo_uri" {
type=string
}
Я думал, тебе нужно всего лишь создать