DevOps Bootcamp · Lekcja

Moduły i ponowne używanie kodu

Dowiedz się, jak moduły Terraform pakują wielokrotnie używaną infrastrukturę, przyjmują dane wejściowe, udostępniają dane wyjściowe oraz pomagają utrzymywać konfiguracje zgodne z zasadą DRY i łatwe w utrzymaniu.

Lekcja 4 z 413 kroki

Moduły i ponowne używanie kodu to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Po co moduły?

Kopiowanie i wklejanie tych samych zasobów między środowiskami prowadzi do rozbieżności i błędów. Moduł to wielokrotnego użytku, sparametryzowany kontener zasobów Terraform, który można wielokrotnie wywoływać z różnymi danymi wejściowymi, zachowując zasadę DRY.

Każda konfiguracja jest modułem

Katalog, w którym uruchamiasz terraform apply, to moduł główny. Wywoływane przez niego moduły to moduły podrzędne. Zatem już używasz modułów — po prostu dodajesz kolejne.

Budowa modułu

Moduł to po prostu folder z plikami .tf, zwykle zawierający:

  • main.tf — zasoby.
  • variables.tf — zmienne wejściowe.
  • outputs.tf — udostępniane wartości.

Definiowanie danych wejściowych

Dane wejściowe deklaruje się jako zmienne wewnątrz modułu, co pozwala wywołującym dostosować jego działanie.

variable "bucket_name" {
  type = string
}
variable "versioning" {
  type    = bool
  default = false
}

Używanie danych wejściowych

Zasoby modułu odwołują się do jego zmiennych.

resource "aws_s3_bucket" "this" {
  bucket = var.bucket_name
}

Udostępnianie danych wyjściowych

Dane wyjściowe zwracają wywołującemu przydatne wartości, takie jak identyfikatory lub ARN-y.

output "bucket_arn" {
  value = aws_s3_bucket.this.arn
}

Wywoływanie modułu

Moduł główny wywołuje moduł podrzędny za pomocą bloku module, przekazując dane wejściowe.

module "logs" {
  source     = "./modules/bucket"
  bucket_name = "app-logs"
  versioning  = true
}

Odwoływanie się do danych wyjściowych modułu

W innych miejscach konfiguracji można uzyskać dostęp do danych wyjściowych modułu za pomocą module.NAME.OUTPUT.

resource "aws_s3_bucket_policy" "p" {
  bucket = module.logs.bucket_arn
}

Źródła modułów

Wartością source może być ścieżka lokalna, adres URL Git lub publiczny Terraform Registry.

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "5.0.0"
}

Wersjonowanie modułów

Zawsze przypinaj wartość version dla modułów z rejestru, aby aktualizacje były wykonywane świadomie. Po dodaniu lub zmianie modułów uruchom terraform init, aby je pobrać.

Projektowanie dobrych modułów

Moduły powinny być wyspecjalizowane (jeden logiczny komponent); udostępniaj tylko potrzebne dane wejściowe, dokumentuj dane wyjściowe i unikaj wpisywania na stałe wartości zależnych od środowiska. Małe, kompozycyjne moduły są lepsze niż jeden ogromny moduł.

Szybki sprawdzian

Sprawdź swoją wiedzę na temat modułów.

Podsumowanie

Moduły sprawiają, że Terraform nadaje się do ponownego użycia i jest zgodny z zasadą DRY.

  • Moduł to folder plików .tf zawierających zmienne (dane wejściowe) i dane wyjściowe.
  • Wywołuj go za pomocą bloku module i wartości source; uzyskuj dostęp do wyników przez module.NAME.OUTPUT.
  • Źródła mogą być lokalne, oparte na Git lub pochodzić z rejestru; przypinaj version i uruchamiaj init.
  • Projektuj małe, wyspecjalizowane i dobrze udokumentowane moduły.
Bezpłatny start

Ucz się DevOps Bootcamp dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
142
Lekcje
568

Często zadawane pytania

Czy lekcja „Moduły i ponowne używanie kodu” jest bezpłatna?

Tak — pełny tekst „Moduły i ponowne używanie kodu” 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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Moduły i ponowne używanie kodu”?

Dowiedz się, jak moduły Terraform pakują wielokrotnie używaną infrastrukturę, przyjmują dane wejściowe, udostępniają dane wyjściowe oraz pomagają utrzymywać konfiguracje zgodne z zasadą DRY i łatwe w… Ćwiczysz DevOps Bootcamp 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ąć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp 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 4 z 4.

Ile czasu zajmuje lekcja „Moduły i ponowne używanie kodu”?

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 DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp 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. Dostawcy i zasoby
  2. Zmienne i wartości wyjściowe
  3. Podstawy zarządzania stanem
  4. Moduły i ponowne używanie kodu
← Powrót do DevOps Bootcamp