Providers en resources
Krijg inzicht in hoe Terraform samenwerkt met verschillende cloud- en serviceproviders en hoe u afzonderlijke infrastructuurcomponenten als resources definieert.
Providers en resources is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.
De belangrijkste bouwstenen van Terraform
Welkom! Met Terraform kun je je cloudinfrastructuur beheren met behulp van code. Maar hoe communiceert het eigenlijk met cloudproviders en definieert het wat je wilt bouwen?
In deze les maak je kennis met twee fundamentele concepten: providers en resources. Dit zijn de basisbouwstenen van elke Terraform-configuratie en ze zijn essentieel om te begrijpen hoe IaC werkt.
Wat zijn Terraform-providers?
Zie een provider als een plug-in waarmee Terraform kan communiceren met een externe service of API. Dat kan een cloudprovider zijn, zoals AWS, Azure of Google Cloud, maar ook een service zoals GitHub, Kubernetes of Datadog.
- Elke provider begrijpt de specifieke API-aanroepen die voor zijn service nodig zijn.
- De provider vertaalt je gewenste infrastructuur naar acties die de service kan uitvoeren.
- Je configureert providers om Terraform te vertellen welke service het moet gebruiken en hoe het zich moet authenticeren.
Een providerblok declareren
Om een provider te gebruiken, declareer je deze in je Terraform-configuratiebestanden met een provider-blok. Dit blok geeft de naam van de provider en eventuele configuratie-instellingen op die nodig zijn, zoals de regio voor een cloudprovider.
Hier is een veelgebruikt voorbeeld voor de AWS-provider:
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"
}Bron en versie van een provider
De sectie required_providers van het terraform-blok is belangrijk. Deze vertelt Terraform waar de provider te vinden is (de source) en welke version moet worden gebruikt. Zo zorg je voor consistentie en voorkom je onverwacht gedrag.
- Bron: geeft het registerpad van de provider op (bijvoorbeeld
hashicorp/aws). - Versie: legt de providerversie vast, zodat ingrijpende wijzigingen in nieuwe releases worden voorkomen.
- Het blok
provider "aws"configureert vervolgens specifieke instellingen, zoals de AWS-regionvoor alle resources die door deze provider worden beheerd.
Wat zijn Terraform-resources?
Een resource is een blok dat één onderdeel van je infrastructuur beschrijft. Dat kan een virtuele machine (VM), netwerk, database, opslagbucket of zelfs gebruikersaccount zijn.
- Elk resourcetype wordt beheerd door een specifieke provider (bijvoorbeeld
aws_s3_bucketdoor de AWS-provider). - Je declareert de gewenste status van je resource en Terraform zorgt ervoor dat die status wordt bereikt.
- Resources hebben argumenten die hun eigenschappen bepalen (bijvoorbeeld grootte, naam en locatie).
Een resourceblok declareren
Je definieert een resource met een resource-blok. Dit blok vereist twee tekenreeksen:
- Het resourcetype (bijvoorbeeld
aws_s3_bucket). - Een lokale naam (bijvoorbeeld
my_first_bucket) die uniek is binnen je configuratie.
Het type vertelt Terraform welk soort infrastructuuronderdeel het is, en de naam geeft het een unieke identificatie waarmee Terraform het kan volgen.
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
}Resourceargumenten en eigenschappen
Binnen een resource-blok geef je argumenten op. Dit zijn sleutel-waardeparen die de eigenschappen en configuratie van het infrastructuuronderdeel bepalen. Welke argumenten beschikbaar zijn, hangt af van het resourcetype en de provider die het beheert.
- Voor een AWS S3-bucket kunnen argumenten bijvoorbeeld
bucket(de unieke naam),acl(toegangsbeheerlijst) oftagsvoor labels zijn. - Terraform gebruikt deze argumenten om de resource te maken of bij te werken, zodat deze overeenkomt met de gewenste status in de cloud.
Provider en resource combineren
Hier is een eenvoudige, volledige Terraform-configuratie. Deze declareert de AWS-provider en gebruikt die vervolgens om een eenvoudige S3-bucket te maken. Dit ene bestand is alles wat je nodig hebt om infrastructuur te gaan definiëren!
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"
}
}De koppeling met de Terraform-werkstroom
Wanneer je Terraform-opdrachten uitvoert, spelen providers en resources een belangrijke rol:
terraform init: downloadt de benodigde providerplug-ins.terraform plan: gebruikt de provider om met de cloud-API te communiceren en te bepalen welke wijzigingen nodig zijn om de gewenste status van de resource te bereiken.terraform apply: geeft de provider opdracht deze wijzigingen in je werkelijke cloudinfrastructuur aan te brengen.
Dit zijn de belangrijkste interactiepunten voor het beheren van je infrastructuur.
Korte controle: rol van de provider
Je hebt geleerd over providers en resources. Laten we kijken of je hun rollen goed kunt herkennen.
Samenvatting: providers en resources
Goed gedaan! In deze les heb je een fundamenteel inzicht gekregen in de twee belangrijkste concepten van Terraform:
- Providers: dit zijn de essentiële plug-ins waarmee Terraform kan communiceren met verschillende cloudservices en API's. Je configureert ze om op te geven welke service moet worden gebruikt en hoe Terraform zich moet authenticeren.
- Resources: dit zijn de afzonderlijke infrastructuuronderdelen die je in je configuratie declareert. Ze hebben typen en argumenten om hun gewenste status te definiëren.
Deze twee elementen werken samen, zodat je je infrastructuur efficiënt als code kunt definiëren en beheren!
Leer DevOps-bootcamp met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 142
- Lessen
- 568
Veelgestelde vragen
Is de les “Providers en resources” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Providers en resources”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.
Wat leer ik in “Providers en resources”?
Krijg inzicht in hoe Terraform samenwerkt met verschillende cloud- en serviceproviders en hoe u afzonderlijke infrastructuurcomponenten als resources definieert. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?
Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Providers en resources”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?
Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Providers en resources
- Variabelen en outputs
- Basisprincipes van statebeheer
- Modules en hergebruik van code