Terraform som infrastruktur som kode · Lektion

Providers og resources

Forstå, hvordan Terraform interagerer med forskellige cloud- og serviceudbydere, og hvordan individuelle infrastrukturkomponenter defineres som resources.

Lektion 1 af 411 trin

Providers og resources er en gratis Terraform som infrastruktur som kode-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Terraform som infrastruktur som kode, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Terraform som infrastruktur som kode-kurset indeholder 4 lektioner i alt.

Terraforms centrale byggesten

Velkommen! Terraform hjælper dig med at administrere din cloud-infrastruktur ved hjælp af kode. Men hvordan kommunikerer den egentlig med cloud-providere og definerer det, du vil bygge?

Denne lektion introducerer to grundlæggende begreber: Providers og Resources. De er de grundlæggende byggesten i enhver Terraform-konfiguration og afgørende for at forstå, hvordan IaC fungerer.

Hvad er Terraform-providere?

Tænk på en Provider som et plugin, der gør det muligt for Terraform at kommunikere med en ekstern tjeneste eller API. Det kan være en cloud-provider som AWS, Azure eller Google Cloud eller tjenester som GitHub, Kubernetes eller Datadog.

  • Hver provider forstår de specifikke API-kald, der kræves af tjenesten.
  • Den oversætter din ønskede infrastruktur til handlinger, som tjenesten kan udføre.
  • Du konfigurerer providere for at fortælle Terraform, hvilken tjeneste der skal bruges, og hvordan den skal godkende dig.

Erklær en provider-blok

For at bruge en provider erklærer du den i dine Terraform-konfigurationsfiler ved hjælp af en provider-blok. Denne blok angiver providerens navn og eventuelle konfigurationsindstillinger, den har brug for, f.eks. regionen for en cloud-provider.

Her er et almindeligt eksempel med AWS-provideren:

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"
}

Providerens kilde og version

Afsnittet required_providers i terraform-blokken er vigtigt. Det fortæller Terraform, hvor provideren skal findes (dens source), og hvilken version der skal bruges. Det sikrer ensartethed og forhindrer uventet adfærd.

  • Kilde: Angiver registreringsdatabasens sti til provideren (f.eks. hashicorp/aws).
  • Version: Fastlåser providerens version og forhindrer brudte ændringer fra nye udgivelser.
  • Blokken provider "aws" konfigurerer derefter specifikke indstillinger, f.eks. AWS-regionen for alle ressourcer, der administreres af denne provider.

Hvad er Terraform-ressourcer?

En Resource er en blok, der beskriver en enkelt komponent i din infrastruktur. Det kan være en virtuel maskine (VM), et netværk, en database, en lagerbucket eller endda en brugerkonto.

  • Hver ressourcetype administreres af en bestemt provider (f.eks. administreres aws_s3_bucket af AWS-provideren).
  • Du erklærer ressourcens ønskede tilstand, og Terraform arbejder på at opnå denne tilstand.
  • Ressourcer har argumenter, der definerer deres egenskaber (f.eks. størrelse, navn og placering).

Erklær en ressourceblok

Du definerer en ressource ved hjælp af en resource-blok. Denne blok kræver to strenge:

  • Ressourcens type (f.eks. aws_s3_bucket).
  • Et lokalt navn (f.eks. my_first_bucket), der er unikt i din konfiguration.

Typen fortæller Terraform, hvilken slags infrastrukturkomponent det er, og navnet giver den en unik identifikator, som Terraform kan holde styr på.

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
}

Ressourceargumenter og egenskaber

Inde i en resource-blok angiver du argumenter. Det er nøgle-værdi-par, der definerer infrastrukturkomponentens egenskaber og konfiguration. De tilgængelige argumenter afhænger af ressourcetypen og den provider, der administrerer den.

  • For en AWS S3-bucket kan argumenterne omfatte bucket (det unikke navn), acl (adgangskontrolliste) eller tags til mærkning.
  • Terraform bruger disse argumenter til at oprette eller opdatere ressourcen, så den svarer til din ønskede tilstand i skyen.

Sæt det hele sammen: Provider og ressource

Her er en enkel, komplet Terraform-konfiguration. Den erklærer AWS-provideren og bruger den derefter til at oprette en grundlæggende S3-bucket. Denne ene fil er alt, hvad du skal bruge for at begynde at definere infrastruktur!

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"
  }
}

Sammenhængen i Terraform-arbejdsgangen

Når du udfører Terraform-kommandoer, spiller providere og ressourcer centrale roller:

  • terraform init: Downloader de nødvendige provider-plugins.
  • terraform plan: Bruger provideren til at kommunikere med cloud-API'et og afgøre, hvilke ændringer der er nødvendige for at opnå ressourcens ønskede tilstand.
  • terraform apply: Beder provideren om at foretage disse ændringer i din faktiske cloud-infrastruktur.

De er de centrale kontaktpunkter til administration af din infrastruktur.

Hurtig kontrol: Providerens rolle

Du har lært om Providere og Ressourcer. Lad os se, om du kan identificere deres roller korrekt.

Opsummering: Providere og ressourcer

Godt arbejde! I denne lektion har du opnået en grundlæggende forståelse af de to vigtigste begreber i Terraform:

  • Providere: Det er de nødvendige plugins, der gør det muligt for Terraform at kommunikere med forskellige cloud-tjenester og API'er. Du konfigurerer dem for at angive, hvilken tjeneste der skal bruges, og hvordan den skal godkende dig.
  • Ressourcer: Det er de enkelte infrastrukturkomponenter, du erklærer i din konfiguration. De har typer og argumenter, der definerer deres ønskede tilstand.

Disse to elementer arbejder tæt sammen, så du effektivt kan definere og administrere din infrastruktur som kode!

Gratis at komme i gang

Lær Terraform som infrastruktur som kode med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Providers og resources” gratis?

Ja — hele teksten til “Providers og resources” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Terraform som infrastruktur som kode-kurset, skal du opgradere til CoddyKit PRO. Terraform som infrastruktur som kode-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Providers og resources”?

Forstå, hvordan Terraform interagerer med forskellige cloud- og serviceudbydere, og hvordan individuelle infrastrukturkomponenter defineres som resources. Du øver dig i Terraform som infrastruktur som kode med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Terraform som infrastruktur som kode?

Der kræves ingen tidligere erfaring. Terraform som infrastruktur som kode på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Providers og resources”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Terraform som infrastruktur som kode-lektion?

Ja. Alle Terraform som infrastruktur som kode-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Providers og resources
  2. Variabler og outputs
  3. Grundlæggende state-håndtering
  4. Moduler og genbrug af kode
← Tilbage til Terraform som infrastruktur som kode