`validate` и `fmt` в Terraform
Используйте встроенные команды Terraform, такие как `validate` для проверки синтаксиса конфигурации и `fmt` для единообразного форматирования кода.
«`validate` и `fmt` в Terraform» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Качество кода для инфраструктуры как кода
Хороший код — это не только функциональность, но и понятность и корректность. Для инфраструктуры как кода (IaC) это ещё важнее, поскольку ошибки могут привести к дорогостоящим проблемам с инфраструктурой.
Terraform предоставляет встроенные инструменты: validate и fmt. Они обеспечивают синтаксическую корректность и единообразное форматирование конфигураций.
Раннее обнаружение ошибок
Команда terraform validate проверяет файлы конфигурации на наличие синтаксических ошибок и внутреннюю согласованность. Она гарантирует структурную корректность кода до попытки его применения.
Проверяются, в частности, типы переменных, аргументы ресурсов и конфигурации провайдеров. Это быстрый способ обнаружить ошибки без взаимодействия с Вашим облачным провайдером.
Корректная конфигурация
Рассмотрим простую корректную конфигурацию Terraform. Этот код объявляет сегмент AWS S3.
Выполнение terraform validate для неё завершится успешно, что указывает на отсутствие синтаксических и базовых конфигурационных проблем.
resource "aws_s3_bucket" "my_bucket" {
bucket = "my-unique-coddykit-bucket-123"
acl = "private"
tags = {
Environment = "Dev"
Project = "CoddyKit"
}
}Обнаружение опечатки
Что произойдёт, если мы допустим ошибку? Здесь аргумент acl написан с опечаткой — accl.
terraform validate немедленно укажет на эту ошибку и сообщит, что accl не является распознаваемым аргументом ресурса сегмента S3.
resource "aws_s3_bucket" "my_bucket" {
bucket = "my-unique-coddykit-bucket-456"
accl = "private" # Intentional typo!
tags = {
Environment = "Dev"
}
}Как использовать `validate`
Чтобы проверить конфигурацию, перейдите в терминале в каталог, содержащий Ваши файлы .tf. Затем просто выполните:
terraform validate
Команда выполняет проверки в текущем рабочем каталоге. Если проверка проходит успешно, команда завершает работу без вывода, сообщая об успехе. При ошибке она выводит понятные сообщения об ошибках.
Единообразие превыше всего
Работали ли Вы когда-нибудь в команде, где каждый форматирует код по-своему? Такой код может быть трудным для чтения и сопровождения. Команда terraform fmt (форматирование) решает эту проблему!
Она автоматически переписывает файлы конфигурации Terraform в каноническом формате и стиле. Это обеспечивает единообразие во всей кодовой базе и у всей команды.
Неформатированный код
Посмотрите на эту конфигурацию. Отступы в ней непоследовательны, а интервалы заданы неправильно. Она корректна, но её трудно быстро просмотреть.
Такое форматирование легко возникает, когда несколько человек работают с одними и теми же файлами.
resource "aws_s3_bucket" "another_bucket" {
bucket = "coddykit-unformatted-bucket"
acl = "private"
tags = {
Project = "CoddyKit"
Env = "Test"
}
}Безупречно отформатированный код
Теперь представьте, что Вы выполняете terraform fmt для предыдущего кода. Команда автоматически скорректирует интервалы и отступы в соответствии со стандартным стилем Terraform.
Код станет гораздо чище и удобнее для чтения. Это небольшое изменение, которое существенно улучшает совместную работу!
resource "aws_s3_bucket" "another_bucket" {
bucket = "coddykit-unformatted-bucket"
acl = "private"
tags = {
Project = "CoddyKit"
Env = "Test"
}
}fmt для команд
Чтобы отформатировать файлы, выполните terraform fmt в каталоге конфигурации. Команда изменяет файлы непосредственно на месте.
Для конвейеров CI/CD можно использовать terraform fmt -check=true, чтобы проверить, отформатированы ли файлы правильно, не изменяя их. Или -diff, чтобы просмотреть предлагаемые изменения.
Проверьте свои знания
Какие из следующих утверждений о terraform validate и terraform fmt верны?
Проверяйте и форматируйте свой код!
На этом уроке Вы узнали о двух важных командах Terraform:
terraform validate: Проверяет синтаксическую корректность и внутреннюю согласованность конфигурации, помогая рано обнаруживать ошибки.terraform fmt: Автоматически форматирует код в едином стиле, улучшая читаемость и совместную работу.
Регулярное использование этих инструментов помогает поддерживать качественную, безошибочную и понятную инфраструктуру как код. Далее мы рассмотрим более продвинутые стратегии тестирования!
Изучай DevOps Bootcamp с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 142
- Уроки
- 568
Часто задаваемые вопросы
Урок «`validate` и `fmt` в Terraform» бесплатный?
Да — полный текст урока «`validate` и `fmt` в Terraform» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «`validate` и `fmt` в Terraform»?
Используйте встроенные команды Terraform, такие как `validate` для проверки синтаксиса конфигурации и `fmt` для единообразного форматирования кода. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «`validate` и `fmt` в Terraform»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- `validate` и `fmt` в Terraform
- Модульное тестирование с Terratest
- Интеграционное тестирование облачных ресурсов
- Политика как код и проверки соответствия требованиям