Importazione di risorse esistenti
Impari a importare nell' state di Terraform un'infrastruttura cloud già esistente, portando le risorse preesistenti sotto la gestione IaC.
Importazione di risorse esistenti è una lezione Terraform Infrastructure as Code gratuita su CoddyKit. Questa è la lezione 3 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 Terraform Infrastructure as Code, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Terraform Infrastructure as Code include 4 lezioni in totale.
Portare l'infrastruttura esistente nell'IaC
A volte si dispone di risorse cloud create manualmente o da altri strumenti. Terraform import consente di portare queste risorse esistenti sotto la gestione di Terraform.
Ciò significa che Terraform ne terrà traccia dello stato e che le modifiche future potranno essere applicate tramite i file di configurazione. È un passaggio fondamentale per adottare l'Infrastructure as Code (IaC) in un ambiente «brownfield».
Quando è necessario importare
L'importazione è utile in diverse situazioni:
- Migrazione dell'infrastruttura esistente: portare nel flusso di lavoro IaC le risorse create al di fuori di Terraform.
- Adozione graduale di Terraform: iniziare dalle risorse esistenti invece di ricreare tutto.
- Recupero dopo la perdita dello stato: ricollegare Terraform alle risorse se il file di stato viene perso (anche se ciò è raro quando si utilizza uno stato remoto).
Padroneggiare il comando di importazione
La struttura di base del comando terraform import è semplice. Indica a Terraform di trovare una risorsa esistente nel cloud provider e aggiungerla al file di stato, associandola a un blocco di risorsa nella configurazione.
Richiede due informazioni principali: l'indirizzo Terraform della risorsa e l'ID della risorsa assegnato dal cloud provider.
Che cos'è un indirizzo di risorsa?
Il resource address è il modo in cui Terraform identifica una risorsa specifica all'interno della configurazione. Segue il modello resource_type.resource_name.
resource_type: il tipo di risorsa (ad esempioaws_s3_bucket,azurerm_resource_group).resource_name: il nome locale assegnato alla risorsa nella configurazione Terraform (ad esempiomy_bucket,web_app).
Questo indirizzo deve essere già presente nei file .tf.
Individuare l'ID cloud
Ogni risorsa di un cloud provider, come AWS, Azure o GCP, ha un identificatore univoco, spesso chiamato ID. Questo ID serve per indicare a Terraform *quale* risorsa esistente specifica importare.
Può trovare l'ID nella console del cloud provider, tramite la relativa CLI o attraverso la relativa API. Ad esempio, l'ID di un bucket AWS S3 è il suo nome, mentre un'istanza EC2 ha un instance ID come i-0abcdef1234567890.
Definire l'HCL prima dell'importazione
Passaggio fondamentale: prima di eseguire terraform import, deve avere definito nei file di configurazione Terraform (file .tf) un blocco di risorsa corrispondente.
Questo blocco indica a Terraform quale tipo di risorsa aspettarsi e quali attributi dovrebbe avere. Terraform utilizza questa definizione per comprendere lo schema della risorsa durante l'importazione.
HCL per un bucket S3
Supponiamo che esista già un bucket AWS S3 denominato my-existing-coddykit-bucket-123. Per prima cosa, definisca un blocco di risorsa per il bucket nel file main.tf:
resource "aws_s3_bucket" "my_imported_bucket" {
bucket = "my-existing-coddykit-bucket-123"
# Add other expected attributes if known
# e.g., acl = "private"
}Importare il bucket S3
Ora che dispone della definizione HCL, può eseguire il comando terraform import. Sostituisca my-existing-coddykit-bucket-123 con il nome/l'ID effettivo del bucket esistente.
Si assicuri di aver già eseguito terraform init nella directory!
terraform import aws_s3_bucket.my_imported_bucket my-existing-coddykit-bucket-123Controllare lo stato di Terraform
Dopo un'importazione completata correttamente, Terraform avrà aggiunto la risorsa al file di stato. Può verificarlo usando terraform state show, che visualizza gli attributi della risorsa importata così come vengono rilevati da Terraform.
È fondamentale eseguire poi terraform plan per assicurarsi che non vi siano differenze impreviste tra l'HCL e lo stato effettivo della risorsa importata.
terraform state show aws_s3_bucket.my_imported_bucketVerifica rapida: ordine di importazione
Desidera importare in Terraform un'istanza AWS EC2 esistente. Quale dei seguenti passaggi DEVE essere completato *prima* di eseguire il comando terraform import?
Riepilogo: portare l'infrastruttura in Terraform
Ha imparato a portare le risorse cloud esistenti sotto la gestione di Terraform usando terraform import.
- Per prima cosa, definisca il blocco di risorsa nel Suo HCL.
- Quindi, individui l'ID della risorsa assegnato dal cloud provider.
- Infine, esegua
terraform import ADDRESS ID. - Completi sempre l'operazione con
terraform planper riallineare eventuali differenze.
Questo potente comando aiuta a colmare il divario tra un'infrastruttura gestita manualmente e un ambiente completamente basato sull'IaC.
Domande Frequenti
La lezione «Importazione di risorse esistenti» è gratuita?
Sì — il testo completo di «Importazione di risorse esistenti» è 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 Terraform Infrastructure as Code, passa a CoddyKit PRO. Il corso Terraform Infrastructure as Code include 4 lezioni in totale.
Cosa imparerò in «Importazione di risorse esistenti»?
Impari a importare nell' state di Terraform un'infrastruttura cloud già esistente, portando le risorse preesistenti sotto la gestione IaC. Eserciti Terraform Infrastructure as Code 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 Terraform Infrastructure as Code?
Non è richiesta alcuna esperienza precedente. Terraform Infrastructure as Code su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Importazione di risorse esistenti»?
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 Terraform Infrastructure as Code?
Sì. Ogni lezione Terraform Infrastructure as Code 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
- Backend dello stato remoto
- Blocco dello stato e coerenza
- Importazione di risorse esistenti
- Refactoring dello state con moved e removed