Moduler och återanvändning av kod
Lär Er hur Terraform-moduler paketerar återanvändbar infrastruktur, tar emot indata, exponerar utdata och håller konfigurationer DRY och lättunderhållna.
Moduler och återanvändning av kod är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Varför moduler?
Att kopiera och klistra in samma resurser mellan miljöer leder till avvikelser och fel. En modul är en återanvändbar, parameteriserad behållare för Terraform-resurser som ni kan anropa många gånger med olika indata, så att koden förblir DRY.
Varje konfiguration är en modul
Katalogen där ni kör terraform apply är rotmodulen. Moduler som den anropar är underordnade moduler. Ni använder alltså redan moduler — ni lägger bara till fler.
Modulens uppbyggnad
En modul är helt enkelt en mapp med .tf-filer, vanligtvis:
main.tf— resurserna.variables.tf— indatavariabler.outputs.tf— exponerade värden.
Definiera indata
Indata deklareras som variabler i modulen, så att de som anropar den kan anpassa beteendet.
variable "bucket_name" {
type = string
}
variable "versioning" {
type = bool
default = false
}Använda indata
Modulens resurser refererar till dess variabler.
resource "aws_s3_bucket" "this" {
bucket = var.bucket_name
}Exponera utdata
Utdata returnerar användbara värden till den som anropar modulen, till exempel ID:n eller ARN:er.
output "bucket_arn" {
value = aws_s3_bucket.this.arn
}Anropa en modul
Rotmodulen anropar en underordnad modul med ett module-block och skickar med indata.
module "logs" {
source = "./modules/bucket"
bucket_name = "app-logs"
versioning = true
}Referera till modulutdata
Åtkomst till en moduls utdata fås med module.NAME.OUTPUT på andra ställen i konfigurationen.
resource "aws_s3_bucket_policy" "p" {
bucket = module.logs.bucket_arn
}Modulkällor
source kan vara en lokal sökväg, en Git-URL eller det publika Terraform Registry.
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.0.0"
}Versionshantera moduler
Lås alltid en version för registermoduler så att uppgraderingar sker medvetet. Kör terraform init efter att ni har lagt till eller ändrat moduler för att hämta dem.
Utforma bra moduler
Håll moduler fokuserade (en logisk komponent), exponera endast de indata ni behöver, dokumentera utdata och undvik hårdkodade miljöspecifika värden. Små, komponerbara moduler är bättre än en enda jättemodul.
Snabbtest
Testa era kunskaper om moduler.
Sammanfattning
Moduler gör Terraform återanvändbart och DRY.
- En modul är en mapp med .tf-filer, variabler (indata) och utdata.
- Anropa den med ett
module-block och ensource; få åtkomst till resultaten viamodule.NAME.OUTPUT. - Källor kan vara lokala, Git eller registret; lås
versionoch körinit. - Utforma små, fokuserade och väl dokumenterade moduler.
Lär dig DevOps-bootcamp med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Moduler och återanvändning av kod” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Moduler och återanvändning av kod”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Moduler och återanvändning av kod”?
Lär Er hur Terraform-moduler paketerar återanvändbar infrastruktur, tar emot indata, exponerar utdata och håller konfigurationer DRY och lättunderhållna. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Moduler och återanvändning av kod”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Providers och resurser
- Variabler och output-värden
- Grunderna i state-hantering
- Moduler och återanvändning av kod