Terraform Infrastructure as Code · Урок

`validate` и `fmt` в Terraform

Используйте встроенные команды Terraform, такие как `validate` для проверки синтаксиса конфигурации и `fmt` для единообразного форматирования кода.

Урок 1 из 411 шагов

«`validate` и `fmt` в Terraform» — бесплатный урок Terraform Infrastructure as Code на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Terraform Infrastructure as Code, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Terraform Infrastructure as Code содержит 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: Автоматически форматирует код в едином стиле, улучшая читаемость и совместную работу.

Регулярное использование этих инструментов помогает поддерживать качественную, безошибочную и понятную инфраструктуру как код. Далее мы рассмотрим более продвинутые стратегии тестирования!

Можно начать бесплатно

Изучай Terraform Infrastructure as Code с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
12
Уроки
48

Часто задаваемые вопросы

Урок «`validate` и `fmt` в Terraform» бесплатный?

Да — полный текст урока «`validate` и `fmt` в Terraform» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Terraform Infrastructure as Code, подпишись на CoddyKit PRO. Курс Terraform Infrastructure as Code содержит 4 уроков всего.

Чему я научусь в уроке «`validate` и `fmt` в Terraform»?

Используйте встроенные команды Terraform, такие как `validate` для проверки синтаксиса конфигурации и `fmt` для единообразного форматирования кода. Ты практикуешь Terraform Infrastructure as Code с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Terraform Infrastructure as Code?

Предыдущий опыт не требуется. Terraform Infrastructure as Code на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «`validate` и `fmt` в Terraform»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Terraform Infrastructure as Code?

Да. Каждый урок Terraform Infrastructure as Code включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. `validate` и `fmt` в Terraform
  2. Модульное тестирование с Terratest
  3. Интеграционное тестирование облачных ресурсов
  4. Политика как код и проверки соответствия требованиям
← Назад к Terraform Infrastructure as Code