Provider e risorse
Comprenda come Terraform interagisca con diversi provider cloud e di servizi e come definire singoli componenti dell’infrastruttura come risorse.
Provider e risorse è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
I blocchi fondamentali di Terraform
Benvenuto! Terraform consente di gestire l'infrastruttura cloud utilizzando il codice. Ma come comunica effettivamente con i provider cloud e come si definisce ciò che si vuole creare?
Questa lezione presenta due concetti fondamentali: Provider e Risorse. Sono i blocchi di base di ogni configurazione Terraform e sono essenziali per capire come funziona l'IaC.
Cosa sono i provider Terraform?
Consideri un Provider come un plugin che consente a Terraform di interagire con un servizio o un'API esterna. Può trattarsi di un provider cloud come AWS, Azure o Google Cloud, oppure di servizi come GitHub, Kubernetes o Datadog.
- Ogni provider conosce le chiamate API specifiche necessarie per il proprio servizio.
- Traduce l'infrastruttura desiderata in azioni che il servizio può eseguire.
- Si configurano i provider per indicare a Terraform quale servizio utilizzare e come autenticarsi.
Dichiarare un blocco provider
Per utilizzare un provider, lo dichiari nei file di configurazione Terraform tramite un blocco provider. Questo blocco specifica il nome del provider e le impostazioni di configurazione necessarie, come la regione per un provider cloud.
Ecco un esempio comune per il provider 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"
}Origine e versione del provider
La sezione required_providers del blocco terraform è importante. Indica a Terraform dove trovare il provider (il relativo source) e quale version utilizzare. In questo modo si garantisce la coerenza e si evitano comportamenti imprevisti.
- Source: specifica il percorso nel registry del provider, ad esempio
hashicorp/aws. - Version: blocca la versione del provider, evitando modifiche incompatibili introdotte da nuove release.
- Il blocco
provider "aws"configura quindi impostazioni specifiche, come laregionAWS per tutte le risorse gestite da questo provider.
Cosa sono le risorse Terraform?
Una Resource è un blocco che descrive un singolo componente dell'infrastruttura. Può trattarsi di una macchina virtuale (VM), una rete, un database, un bucket di archiviazione o persino un account utente.
- Ogni tipo di risorsa è gestito da un provider specifico, ad esempio
aws_s3_bucketè gestito dal provider AWS. - Si dichiara lo stato desiderato della risorsa e Terraform si adopera per raggiungerlo.
- Le risorse hanno argomenti che definiscono le loro proprietà, come dimensioni, nome e posizione.
Dichiarare un blocco resource
Si definisce una risorsa utilizzando un blocco resource. Questo blocco richiede due stringhe:
- Il tipo di risorsa, ad esempio
aws_s3_bucket. - Un nome locale, ad esempio
my_first_bucket, univoco all'interno della configurazione.
Il tipo indica a Terraform il genere di componente dell'infrastruttura, mentre il nome fornisce un identificatore univoco che Terraform utilizza per tenerne traccia.
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
}Argomenti e proprietà delle risorse
All'interno di un blocco resource si specificano gli argomenti. Sono coppie chiave-valore che definiscono le proprietà e la configurazione del componente dell'infrastruttura. Gli argomenti disponibili dipendono dal tipo di risorsa e dal provider che la gestisce.
- Per un bucket AWS S3, gli argomenti possono includere
bucket(il nome univoco),acl(l'elenco di controllo degli accessi) otagsper aggiungere etichette. - Terraform utilizza questi argomenti per creare o aggiornare la risorsa in modo che corrisponda allo stato desiderato nel cloud.
Combinare provider e risorsa
Ecco una configurazione Terraform semplice e completa. Dichiara il provider AWS e lo utilizza per creare un bucket S3 di base. Questo singolo file è tutto ciò che serve per iniziare a definire l'infrastruttura!
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"
}
}Il collegamento con il flusso di lavoro Terraform
Quando si eseguono i comandi Terraform, provider e risorse svolgono ruoli fondamentali:
terraform init: scarica i plugin dei provider necessari.terraform plan: utilizza il provider per comunicare con l'API cloud e determinare quali modifiche sono necessarie per raggiungere lo stato desiderato della risorsa.terraform apply: ordina al provider di apportare tali modifiche all'infrastruttura cloud effettiva.
Sono i punti fondamentali di interazione per la gestione dell'infrastruttura.
Verifica rapida: ruolo del provider
Ha imparato a conoscere Provider e Risorse. Verifichiamo se sa identificarne correttamente i ruoli.
Riepilogo: provider e risorse
Ottimo lavoro! In questa lezione ha acquisito una conoscenza di base dei due concetti più importanti di Terraform:
- Provider: sono i plugin essenziali che consentono a Terraform di interagire con diversi servizi cloud e API. Si configurano per specificare quale servizio utilizzare e come autenticarsi.
- Risorse: sono i singoli componenti dell'infrastruttura dichiarati nella configurazione. Hanno tipi e argomenti che ne definiscono lo stato desiderato.
Questi due elementi lavorano insieme per consentire di definire e gestire in modo efficiente l'infrastruttura come codice!
Domande Frequenti
La lezione «Provider e risorse» è gratuita?
Sì — il testo completo di «Provider e risorse» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Provider e risorse»?
Comprenda come Terraform interagisca con diversi provider cloud e di servizi e come definire singoli componenti dell’infrastruttura come risorse. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Provider e risorse»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Provider e risorse
- Variabili e output
- Fondamenti della gestione dello state
- Moduli e riutilizzo del codice