#terraform #terragrunt
Вопрос:
Я унаследовал проект terraform, настроенный для развертывания в сервисе эластичных контейнеров на AWS.
До сих пор мне очень нравилось работать с ним, и мне удалось изменить несколько вещей, несмотря на то, что я был очень новичком в терраформировании.
Наш проект использует terragrunt для защиты окружающей среды, и я уже вносил изменения в файлы, чтобы добавить настройки для конкретной среды, и все прошло отлично.
Тем не менее, я попытался добавить совершенно новый блестящий модуль, и… террагрант ненавидит это.
Это код, который я пытался добавить:
terraform { source = "${path_relative_from_include()}/../modules//auto_scaling" } dependency "analytics_cluster" { config_path = "../analytics_cluster" } dependency "analytics_app" { config_path = "../analytics_app" } include { path = find_in_parent_folders() } inputs = { ecs_cluster_name = dependency.analytics_cluster.outputs.name ecs_app_service_name = dependency.analytics_app.outputs.app_service_name ecs_sidecar_service_name = dependency.analytics_app.outputs.sidecar_service_name } dependencies { paths = [ "../analytics_cluster", "../analytics_app", ] }
и ошибка, которую я получаю, заключается в том, что:
terragrunt.hcl:19,62-79: Unsupported attribute; This object does not have an attribute named "app_service_name"., and 1 other diagnostic(s)
Это переменная, которую я добавил в выходные данные модуля, зависимость которого я установил.
Вот как выглядят выходные данные:
# output "service_name" { # value = module.analytics_app.service_name # } output "app_service_name" { value = module.analytics_app.app_service } output "sidecar_service_name" { value = module.analytics_app.sidecar_service }
Самое странное, если я изменю файл .hcl на закомментированный вывод, вот так:
inputs = { ecs_cluster_name = dependency.analytics_cluster.outputs.name ecs_app_service_name = dependency.analytics_app.outputs.service_name }
then this is a valid input, despite the fact that service_name is now commented out.
Why are the new output variables not being picked up? And why is the old variable which I’ve removed still present?