0Pricing
Terraform Infrastructure as Code · Lekcja

`validate` i `fmt` w Terraform

Wykorzystaj wbudowane polecenia Terraform, takie jak `validate` do sprawdzania składni konfiguracji oraz `fmt` do spójnego formatowania kodu.

`validate` i `fmt` w Terraform to bezpłatna lekcja Terraform Infrastructure as Code na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Terraform Infrastructure as Code, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Terraform Infrastructure as Code zawiera 4 lekcji w sumie.

Jakość kodu w IaC

Dobry kod to nie tylko funkcjonalność, lecz także czytelność i poprawność. W przypadku infrastruktury jako kodu (IaC) jest to jeszcze ważniejsze, ponieważ błędy mogą prowadzić do kosztownych problemów z infrastrukturą.

Terraform udostępnia wbudowane narzędzia, które w tym pomagają: validate i fmt. Zapewniają one poprawność składniową konfiguracji i jej spójne formatowanie.

Wczesne wykrywanie błędów

Polecenie terraform validate sprawdza pliki konfiguracyjne pod kątem błędów składni i spójności wewnętrznej. Zapewnia, że kod jest poprawny strukturalnie, zanim zostanie podjęta próba jego zastosowania.

Obejmuje to weryfikację typów zmiennych, argumentów zasobów i konfiguracji providerów. To szybki sposób na wykrycie błędów bez kontaktowania się z dostawcą chmury.

Poprawna konfiguracja

Przyjrzyjmy się prostej, poprawnej konfiguracji Terraform. Ten kod deklaruje bucket AWS S3.

Uruchomienie terraform validate dla tej konfiguracji zakończyłoby się powodzeniem, wskazując na brak problemów ze składnią lub podstawową konfiguracją.

resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-unique-coddykit-bucket-123"
  acl    = "private"

  tags = {
    Environment = "Dev"
    Project     = "CoddyKit"
  }
}

Wykrywanie literówki

Co się stanie, jeśli popełnimy błąd? W tym przypadku argument acl zapisano błędnie jako accl.

terraform validate natychmiast zgłosiłoby ten błąd, informując, że accl nie jest rozpoznawanym argumentem zasobu bucketa S3.

resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-unique-coddykit-bucket-456"
  accl   = "private" # Intentional typo!

  tags = {
    Environment = "Dev"
  }
}

Jak używać `validate`

Aby zweryfikować konfigurację, należy w terminalu przejść do katalogu zawierającego pliki .tf. Następnie wystarczy uruchomić:

terraform validate

Polecenie wykonuje sprawdzenia względem bieżącego katalogu roboczego. Jeśli walidacja zakończy się powodzeniem, polecenie zakończy działanie bez komunikatów lub wyświetli komunikat o sukcesie. W przypadku niepowodzenia wyświetli jasne komunikaty o błędach.

Spójność ma znaczenie

Czy zdarzyło się Państwu pracować w zespole, w którym każda osoba formatuje kod inaczej? Może to utrudniać odczytywanie i utrzymywanie kodu. Rozwiązuje to polecenie terraform fmt (formatowanie)!

Automatycznie przepisuje ono pliki konfiguracyjne Terraform do kanonicznego formatu i stylu. Zapewnia to spójność w całej bazie kodu i w całym zespole.

Niesformatowany kod

Przyjrzyjmy się tej konfiguracji. Wcięcia są niespójne, a odstępy nieprawidłowe. Konfiguracja jest poprawna, ale trudno ją szybko przeanalizować.

Takie problemy z formatowaniem mogą łatwo powstać, gdy nad tymi samymi plikami pracuje wiele osób.

resource "aws_s3_bucket" "another_bucket" {
    bucket = "coddykit-unformatted-bucket"
        acl = "private"
      tags = {
          Project = "CoddyKit"
        Env = "Test"
      }
}

Estetycznie sformatowany kod

Wyobraźmy sobie teraz uruchomienie terraform fmt dla poprzedniego kodu. Polecenie automatycznie dostosowałoby odstępy i wcięcia do standardowego stylu Terraform.

Dzięki temu kod jest znacznie czystszy i łatwiejszy do odczytania. To niewielka zmiana o dużym wpływie na współpracę!

resource "aws_s3_bucket" "another_bucket" {
  bucket = "coddykit-unformatted-bucket"
  acl    = "private"
  tags = {
    Project = "CoddyKit"
    Env     = "Test"
  }
}

fmt w zespołach

Aby sformatować pliki, należy uruchomić terraform fmt w katalogu konfiguracji. Polecenie modyfikuje pliki bezpośrednio.

W potokach CI/CD można użyć terraform fmt -check=true, aby sprawdzić, czy pliki są poprawnie sformatowane, bez ich modyfikowania. Opcja -diff pozwala natomiast wyświetlić proponowane zmiany.

Sprawdź swoją wiedzę

Which of the following statements about terraform validate and terraform fmt are TRUE?

Weryfikuj i formatuj swój kod!

W tej lekcji poznali się Państwo z dwoma podstawowymi poleceniami Terraform:

  • terraform validate: Zapewnia poprawność składni i spójność wewnętrzną konfiguracji, wykrywając błędy na wczesnym etapie.
  • terraform fmt: Automatycznie formatuje kod w spójnym stylu, poprawiając jego czytelność i ułatwiając współpracę.

Regularne korzystanie z tych narzędzi pomaga utrzymywać wysoką jakość, bezbłędność i czytelność infrastruktury jako kodu. Następnie omówimy bardziej zaawansowane strategie testowania!

Często zadawane pytania

Czy lekcja „`validate` i `fmt` w Terraform” jest bezpłatna?

Tak — pełny tekst „`validate` i `fmt` w Terraform” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Terraform Infrastructure as Code, przejdź na CoddyKit PRO. Kurs Terraform Infrastructure as Code zawiera 4 lekcji w sumie.

Co nauczysz się w „`validate` i `fmt` w Terraform”?

Wykorzystaj wbudowane polecenia Terraform, takie jak `validate` do sprawdzania składni konfiguracji oraz `fmt` do spójnego formatowania kodu. Ćwiczysz Terraform Infrastructure as Code z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Terraform Infrastructure as Code?

Nie wymagamy żadnego doświadczenia. Terraform Infrastructure as Code w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „`validate` i `fmt` w Terraform”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Terraform Infrastructure as Code?

Tak. Każda lekcja Terraform Infrastructure as Code zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. `validate` i `fmt` w Terraform
  2. Testy jednostkowe za pomocą Terratest
  3. Testy integracyjne zasobów chmurowych
  4. Policy as Code i kontrole zgodności
← Powrót do Terraform Infrastructure as Code