0Pricing
Terraform Infrastructure as Code · Lekcja

Dostawcy i zasoby

Poznają Państwo sposób interakcji Terraform z różnymi dostawcami usług i chmury oraz definiowania poszczególnych komponentów infrastruktury jako zasobów.

Dostawcy i zasoby 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.

Podstawowe elementy Terraform

Witamy! Terraform pomaga zarządzać infrastrukturą chmurową za pomocą kodu. Ale jak właściwie komunikuje się z dostawcami chmury i określa, co ma zostać utworzone?

W tej lekcji przedstawiono dwa podstawowe pojęcia: Providery i Zasoby. Są to podstawowe elementy każdej konfiguracji Terraform i klucz do zrozumienia działania IaC.

Czym są providery Terraform?

Provider można traktować jako wtyczkę, która umożliwia Terraform komunikację z zewnętrzną usługą lub interfejsem API. Może to być dostawca chmury, taki jak AWS, Azure lub Google Cloud, a także usługi takie jak GitHub, Kubernetes czy Datadog.

  • Każdy provider rozumie wywołania API specyficzne dla swojej usługi.
  • Przekłada oczekiwaną infrastrukturę na działania, które usługa może wykonać.
  • Konfiguruje Pan/Pani providery, aby wskazać Terraform, z której usługi ma korzystać i jak ma się uwierzytelniać.

Deklarowanie bloku providera

Aby użyć providera, należy zadeklarować go w plikach konfiguracyjnych Terraform za pomocą bloku provider. Ten blok określa nazwę providera i wymagane przez niego ustawienia, takie jak region dostawcy chmury.

Oto typowy przykład dla providera AWS:

terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } provider "aws" { region = "us-east-1" }
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = "us-east-1"
}

Źródło i wersja providera

Sekcja required_providers w bloku terraform ma istotne znaczenie. Informuje Terraform, gdzie znaleźć providera (jego source) i której version użyć. Zapewnia to spójność i zapobiega nieoczekiwanemu działaniu.

  • Source: określa ścieżkę providera w rejestrze, np. hashicorp/aws.
  • Version: przypina wersję providera, zapobiegając niekompatybilnym zmianom wprowadzanym w nowych wydaniach.
  • Blok provider "aws" konfiguruje następnie konkretne ustawienia, takie jak region AWS, dla wszystkich zasobów zarządzanych przez tego providera.

Czym są zasoby Terraform?

Zasób to blok opisujący pojedynczy element infrastruktury. Może nim być maszyna wirtualna (VM), sieć, baza danych, bucket obiektów, a nawet konto użytkownika.

  • Każdym typem zasobu zarządza określony provider, np. aws_s3_bucket jest obsługiwany przez providera AWS.
  • Deklaruje Pan/Pani oczekiwany stan zasobu, a Terraform dąży do jego osiągnięcia.
  • Zasoby mają argumenty określające ich właściwości, takie jak rozmiar, nazwa czy lokalizacja.

Deklarowanie bloku zasobu

Zasób definiuje się za pomocą bloku resource. Ten blok wymaga dwóch ciągów znaków:

  • typu zasobu, np. aws_s3_bucket;
  • lokalnej nazwy, np. my_first_bucket, unikalnej w obrębie konfiguracji.

Typ informuje Terraform, jakiego rodzaju element infrastruktury opisuje zasób, a nazwa nadaje mu unikalny identyfikator, za pomocą którego Terraform może go śledzić.

resource "aws_s3_bucket" "my_first_bucket" { # Arguments go here to define its properties }
resource "aws_s3_bucket" "my_first_bucket" {
  # Arguments go here to define its properties
}

Argumenty i właściwości zasobów

Wewnątrz bloku resource określa się argumenty. Są to pary klucz-wartość definiujące właściwości i konfigurację elementu infrastruktury. Dostępne argumenty zależą od typu zasobu i zarządzającego nim providera.

  • W przypadku bucketa AWS S3 argumenty mogą obejmować bucket (unikalną nazwę), acl (listę kontroli dostępu) lub tags do oznaczania zasobu.
  • Terraform używa tych argumentów, aby utworzyć lub zaktualizować zasób i dopasować go do oczekiwanego stanu w chmurze.

Połączenie elementów: provider i zasób

Oto prosta, kompletna konfiguracja Terraform. Deklaruje providera AWS, a następnie używa go do utworzenia podstawowego bucketa S3. Ten jeden plik wystarczy, aby rozpocząć definiowanie infrastruktury!

terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } provider "aws" { region = "us-east-1" } resource "aws_s3_bucket" "my_unique_bucket" { bucket = "my-coddykit-demo-bucket-12345" # Must be globally unique! acl = "private" tags = { Environment = "Development" Project = "CoddyKit" } }
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = "us-east-1"
}

resource "aws_s3_bucket" "my_unique_bucket" {
  bucket = "my-coddykit-demo-bucket-12345" # Must be globally unique!
  acl    = "private"

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

Powiązanie z procesem Terraform

Podczas wykonywania poleceń Terraform providery i zasoby pełnią kluczowe role:

  • terraform init: pobiera niezbędne wtyczki providerów.
  • terraform plan: używa providera do komunikacji z chmurowym API i określa, jakie zmiany są potrzebne, aby osiągnąć oczekiwany stan zasobu.
  • terraform apply: nakazuje providerowi wprowadzić te zmiany w rzeczywistej infrastrukturze chmurowej.

Są to podstawowe punkty interakcji podczas zarządzania infrastrukturą.

Szybkie sprawdzenie: rola providera

Wiedzą już Państwo, czym są Providery i Zasoby. Sprawdźmy, czy potrafią Państwo prawidłowo określić ich role.

Podsumowanie: providery i zasoby

Świetna praca! W tej lekcji zdobył(a) Pan/Pani podstawową wiedzę o dwóch najważniejszych pojęciach w Terraform:

  • Providery: niezbędne wtyczki umożliwiające Terraform interakcję z różnymi usługami chmurowymi i interfejsami API. Konfiguruje się je, aby określić, z której usługi korzystać i jak się uwierzytelniać.
  • Zasoby: poszczególne elementy infrastruktury deklarowane w konfiguracji. Mają typy i argumenty definiujące ich oczekiwany stan.

Te dwa elementy współpracują ze sobą, umożliwiając wydajne definiowanie infrastruktury i zarządzanie nią jako kodem!

Często zadawane pytania

Czy lekcja „Dostawcy i zasoby” jest bezpłatna?

Tak — pełny tekst „Dostawcy i zasoby” 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 „Dostawcy i zasoby”?

Poznają Państwo sposób interakcji Terraform z różnymi dostawcami usług i chmury oraz definiowania poszczególnych komponentów infrastruktury jako zasobów. Ć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 „Dostawcy i zasoby”?

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. 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 Terraform Infrastructure as Code