terraform fmt

Тема дорожной карты · Terraform

terraform fmt — это встроенный форматтер от компании HashiCorp, который переписывает HCL-конфигурационные файлы в канонический стиль, определённый спецификацией языка Terraform. Это позволяет упростить и стандартизировать структуру кода, обеспечивая единообразие отступов, выровненные знаки = в блоках и нормализованные пробелы. Использование terraform fmt особенно важно при работе с большими проектами, где требуется поддерживать чистоту и структурированность кода. Запуск команды terraform fmt -recursive из корня репозитория форматирует все .tf и .tfvars-файлы в каждой поддиректории, что упрощает применение единого стиля кода в модулях и окружениях. В CI-конвейерах terraform fmt -check завершается с ненулевым кодом, если какой-либо файл нуждается в переформатировании, выступая lint-gate, блокирующим мёржи плохо отформатированного HCL без внесения изменений. Использование terraform fmt как pre-commit хука (через pre-commit-hooks или Husky) гарантирует, что каждый вклад разработчика соответствует единому стандарту форматирования до попадания на ревью кода или в terraform plan.

Как это работает

terraform fmt анализирует каждый файл, который содержит конфигурацию Terraform, и переписывает его в соответствии с каноническим стилем. Этот процесс включает в себя нормализацию отступов, выравнивание знаков = в блоках и удаление лишних пробелов. Важно отметить, что terraform fmt не изменяет логику кода, а только улучшает его читаемость и структурированность.

Когда применять

terraform fmt следует использовать на этапе разработки, чтобы гарантировать, что все файлы конфигураций соответствуют стандартному стилю. Это особенно важно при работе с большими командами разработчиков, где каждый участник может иметь свои собственные предпочтения по стилю кода. Запуск terraform fmt в CI-конвейерах (terraform fmt -check) позволяет блокировать мёржи, которые нарушают стандарт форматирования, что помогает поддерживать чистоту и структуру кода на всех этапах разработки.

Типичные ошибки

Типичные ошибки при использовании terraform fmt включают пропуск форматирования файлов из-за отсутствия автоматизированного процесса или недостаточной настройки CI-конвейера. Также распространённой проблемой является игнорирование предупреждений о необходимости переформатирования кода, что может привести к нерегулярному стилю кода и затруднить его последующее обслуживание.

Связанные понятия

Полезные ресурсы