Importando recursos existentes
Aprenda a importar uma infraestrutura de nuvem já existente para o estado do Terraform, submetendo recursos preexistentes ao gerenciamento por IaC.
Importando recursos existentes é uma aula grátis de Terraform Infrastructure as Code no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Terraform Infrastructure as Code, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Terraform Infrastructure as Code inclui 4 aulas no total.
Traga a infraestrutura existente para IaC
Às vezes, você tem recursos de nuvem que foram criados manualmente ou por outras ferramentas. O Terraform import permite trazer esses recursos existentes para o gerenciamento do Terraform.
Isso significa que o Terraform passará a acompanhar o estado desses recursos, e alterações futuras poderão ser aplicadas por meio dos seus arquivos de configuração. Essa é uma etapa fundamental para adotar Infrastructure as Code (IaC) em um ambiente de greenfield convertido a partir de uma infraestrutura existente.
Quando é necessário importar
A importação é útil em várias situações:
- Migração da infraestrutura existente: trazer recursos criados fora do Terraform para o seu fluxo de trabalho de IaC.
- Adoção gradual do Terraform: começar com os recursos existentes em vez de recriar tudo.
- Recuperação após perda do estado: reassociar o Terraform aos recursos caso o arquivo de estado seja perdido, embora isso seja raro quando se usa estado remoto.
Dominando o comando de importação
A estrutura básica do comando terraform import é simples. Ele instrui o Terraform a localizar um recurso existente no seu provedor de nuvem e adicioná-lo ao arquivo de estado, associando-o a um bloco de recurso na sua configuração.
São necessárias duas informações principais: o endereço do recurso no Terraform e o ID desse recurso no provedor de nuvem.
O que é um endereço de recurso?
O endereço do recurso é a forma como o Terraform identifica um recurso específico dentro da sua configuração. Ele segue o padrão resource_type.resource_name.
resource_type: o tipo de recurso, por exemplo,aws_s3_bucketeazurerm_resource_group.resource_name: o nome local que você atribui ao recurso na configuração do Terraform, por exemplo,my_bucketeweb_app.
Esse endereço já deve existir nos seus arquivos .tf.
Localizando o ID da nuvem
Cada recurso em um provedor de nuvem, como AWS, Azure e GCP, tem um identificador exclusivo, geralmente chamado de ID. Você precisará desse ID para informar ao Terraform qual recurso existente específico deve ser importado.
Você pode encontrar esse ID no console do provedor de nuvem, por meio da CLI dele ou usando a API. Por exemplo, o ID de um bucket S3 da AWS é o seu nome, enquanto uma instância do EC2 tem um ID de instância como i-0abcdef1234567890.
Defina o HCL antes da importação
Etapa crucial: antes de executar terraform import, você deve ter um bloco de recurso correspondente definido nos arquivos de configuração do Terraform, que são arquivos .tf.
Esse bloco informa ao Terraform qual tipo de recurso esperar e quais atributos ele deve ter. O Terraform usa essa definição para entender o esquema do recurso durante a importação.
HCL para um bucket S3
Suponha que você tenha um bucket S3 existente da AWS chamado my-existing-coddykit-bucket-123. Primeiro, defina um bloco de recurso para ele no seu 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"
}Importando o bucket S3
Agora que você tem a definição em HCL, pode executar o comando terraform import. Substitua my-existing-coddykit-bucket-123 pelo nome/ID real do seu bucket existente.
Certifique-se de já ter executado terraform init no seu diretório!
terraform import aws_s3_bucket.my_imported_bucket my-existing-coddykit-bucket-123Verifique o estado do Terraform
Após uma importação bem-sucedida, o Terraform terá adicionado o recurso ao seu arquivo de estado. Você pode verificar isso usando terraform state show, que exibe os atributos do recurso importado conforme são vistos pelo Terraform.
Em seguida, é essencial executar terraform plan para garantir que não haja diferenças inesperadas entre o seu HCL e o estado real do recurso importado.
terraform state show aws_s3_bucket.my_imported_bucketVerificação rápida: ordem da importação
Você deseja importar uma instância EC2 existente para o Terraform. Qual das etapas a seguir MUST ser concluída antes de executar o comando terraform import?
Recapitulação: trazendo a infraestrutura para o Terraform
Você aprendeu a trazer recursos de nuvem existentes para o gerenciamento do Terraform usando terraform import.
- Primeiro, defina o bloco de recurso no seu HCL.
- Em seguida, identifique o ID do recurso no provedor de nuvem.
- Por fim, execute
terraform import ADDRESS ID. - Sempre execute
terraform plandepois para reconciliar eventuais diferenças.
Esse comando poderoso ajuda a diminuir a distância entre uma infraestrutura gerenciada manualmente e um ambiente totalmente orientado por IaC.
Perguntas Frequentes
A aula “Importando recursos existentes” é grátis?
Sim — o texto completo de “Importando recursos existentes” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Terraform Infrastructure as Code, atualize para CoddyKit PRO. O curso de Terraform Infrastructure as Code inclui 4 aulas no total.
O que vou aprender em “Importando recursos existentes”?
Aprenda a importar uma infraestrutura de nuvem já existente para o estado do Terraform, submetendo recursos preexistentes ao gerenciamento por IaC. Você pratica Terraform Infrastructure as Code com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Terraform Infrastructure as Code?
Nenhuma experiência prévia é necessária. Terraform Infrastructure as Code no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Importando recursos existentes”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Terraform Infrastructure as Code?
Sim. Cada aula de Terraform Infrastructure as Code inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Backends de estado remoto
- Bloqueio e consistência do estado
- Importando recursos existentes
- Refatorando o estado com moved e removed