Provedores e Recursos
Entenda como o Terraform interage com vários provedores de nuvem e serviços e como definir componentes individuais da infraestrutura como recursos.
Provedores e Recursos é uma aula grátis de Terraform Infrastructure as Code no CoddyKit. Esta é a aula 1 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.
Os componentes básicos do Terraform
Boas-vindas! O Terraform ajuda você a gerenciar sua infraestrutura de nuvem usando código. Mas como ele se comunica com os provedores de nuvem e define o que você quer criar?
Esta lição apresenta dois conceitos fundamentais: Provedores e Recursos. Eles são os componentes básicos de toda configuração do Terraform e são essenciais para entender como a IaC funciona.
O que são os provedores do Terraform?
Pense em um Provedor como um plugin que permite ao Terraform interagir com um serviço externo ou uma API. Pode ser um provedor de nuvem, como AWS, Azure ou Google Cloud, ou até serviços como GitHub, Kubernetes ou Datadog.
- Cada provedor entende as chamadas de API específicas necessárias para seu serviço.
- Ele traduz a infraestrutura desejada por você em ações que o serviço pode executar.
- Você configura os provedores para informar ao Terraform qual serviço usar e como se autenticar.
Declarando um bloco de provedor
Para usar um provedor, declare-o nos seus arquivos de configuração do Terraform usando um bloco provider. Esse bloco especifica o nome do provedor e todas as configurações necessárias, como a região de um provedor de nuvem.
Veja um exemplo comum para o provedor 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"
}Origem e versão do provedor
A seção required_providers do bloco terraform é importante. Ela informa ao Terraform onde encontrar o provedor (sua source) e qual version usar. Isso garante consistência e evita comportamentos inesperados.
- Origem: especifica o caminho do registro do provedor (por exemplo,
hashicorp/aws). - Versão: fixa a versão do provedor, evitando alterações incompatíveis em novas versões.
- O bloco
provider "aws"configura então definições específicas, como aregionda AWS para todos os recursos gerenciados por esse provedor.
O que são os recursos do Terraform?
Um Recurso é um bloco que descreve um único componente da sua infraestrutura. Pode ser uma máquina virtual (VM), uma rede, um banco de dados, um bucket de armazenamento ou até uma conta de usuário.
- Cada tipo de recurso é gerenciado por um provedor específico (por exemplo,
aws_s3_bucketé gerenciado pelo provedor AWS). - Você declara o estado desejado do recurso, e o Terraform trabalha para alcançar esse estado.
- Os recursos têm argumentos que definem suas propriedades (por exemplo, tamanho, nome e localização).
Declarando um bloco de recurso
Você define um recurso usando um bloco resource. Esse bloco requer duas strings:
- O tipo de recurso (por exemplo,
aws_s3_bucket). - Um nome local (por exemplo,
my_first_bucket) que seja exclusivo na sua configuração.
O tipo informa ao Terraform que tipo de componente de infraestrutura é esse, e o nome fornece um identificador exclusivo para o Terraform acompanhá-lo.
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
}Argumentos e propriedades dos recursos
Dentro de um bloco resource, você especifica argumentos. Eles são pares de chave e valor que definem as propriedades e a configuração do componente de infraestrutura. Os argumentos disponíveis dependem do tipo de recurso e do provedor que o gerencia.
- Para um bucket do AWS S3, os argumentos podem incluir
bucket(o nome exclusivo),acl(lista de controle de acesso) outagspara identificação. - O Terraform usa esses argumentos para criar ou atualizar o recurso de modo que corresponda ao estado desejado na nuvem.
Juntando tudo: provedor e recurso
Aqui está uma configuração simples e completa do Terraform. Ela declara o provedor AWS e o utiliza para criar um bucket S3 básico. Este único arquivo é tudo de que você precisa para começar a definir a infraestrutura!
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"
}
}A conexão com o fluxo do Terraform
Quando você executa comandos do Terraform, os provedores e recursos desempenham funções essenciais:
terraform init: baixa os plugins de provedor necessários.terraform plan: usa o provedor para se comunicar com a API de nuvem e determinar quais alterações são necessárias para alcançar o estado desejado do recurso.terraform apply: instrui o provedor a realizar essas alterações na sua infraestrutura de nuvem real.
Eles são os principais pontos de interação para gerenciar sua infraestrutura.
Verificação rápida: função do provedor
Você aprendeu sobre Provedores e Recursos. Vamos verificar se consegue identificar corretamente as funções deles.
Recapitulação: provedores e recursos
Ótimo trabalho! Nesta lição, você adquiriu uma compreensão básica dos dois conceitos mais importantes do Terraform:
- Provedores: são os plugins essenciais que permitem ao Terraform interagir com diversos serviços de nuvem e APIs. Você os configura para especificar qual serviço usar e como se autenticar.
- Recursos: são os componentes individuais da infraestrutura que você declara na configuração. Eles têm tipos e argumentos que definem seu estado desejado.
Esses dois elementos trabalham em conjunto para permitir que você defina e gerencie sua infraestrutura como código com eficiência!
Perguntas Frequentes
A aula “Provedores e Recursos” é grátis?
Sim — o texto completo de “Provedores e Recursos” é 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 “Provedores e Recursos”?
Entenda como o Terraform interage com vários provedores de nuvem e serviços e como definir componentes individuais da infraestrutura como recursos. 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 1 de 4.
Quanto tempo leva a aula “Provedores e Recursos”?
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
- Provedores e Recursos
- Variáveis e Saídas
- Fundamentos do Gerenciamento de Estado
- Módulos e reutilização de código