0Pricing
Terraform Infrastructure as Code · Aula

Funções integradas do Terraform

Explore uma ampla variedade de funções integradas do Terraform para manipulação de strings, processamento de listas, conversões de tipos e muito mais, aprimorando suas configurações.

Funções integradas do Terraform é uma aula grátis de Terraform Infrastructure as Code no CoddyKit. Esta é a aula 2 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.

Desbloqueie configurações dinâmicas

As funções integradas do Terraform são como miniprogramas que ajudam você a processar e transformar valores diretamente nos seus arquivos de configuração.

Elas permitem criar definições de infraestrutura dinâmicas, reutilizáveis e mais inteligentes.

  • Transformar dados: alterar strings, números ou listas.
  • Calcular valores: realizar cálculos ou verificações lógicas.
  • Gerar conteúdo dinâmico: criar nomes ou tags de recursos automaticamente.

Transformações de texto

As funções de strings são essenciais para manipular texto. Duas funções básicas são upper() e lower(), que alteram as maiúsculas e minúsculas de uma string.

Elas são úteis para padronizar convenções de nomenclatura ou atender a requisitos específicos.

variable "region_code" {
  type    = string
  default = "us-east-1"
}

output "upper_region" {
  value = upper(var.region_code)
}

output "lower_example" {
  value = lower("AWS_REGION")
}

Conectando e dividindo strings

A função join() combina elementos de uma lista em uma única string, usando um delimitador especificado. Por outro lado, split() divide uma string em uma lista de substrings com base em um delimitador.

Essas funções são úteis para analisar dados ou construir nomes complexos.

variable "tags_list" {
  type    = list(string)
  default = ["web", "frontend", "prod"]
}

output "joined_tags" {
  value = join(",", var.tags_list)
}

output "split_string" {
  value = split("-", "server-01-app")
}

Matemática nas suas configurações

As funções numéricas ajudam você a realizar operações matemáticas básicas. ceil() arredonda para cima, floor() arredonda para baixo, e min()/max() encontram os menores e maiores valores de um conjunto.

São excelentes para calcular quantidades ou dimensionamentos de recursos.

variable "instance_ratio" {
  type    = number
  default = 3.7
}

output "rounded_up_instances" {
  value = ceil(var.instance_ratio)
}

output "rounded_down_instances" {
  value = floor(var.instance_ratio)
}

output "smallest_val" {
  value = min(10, 5, 12, 8)
}

Trabalhando com listas

Listas são coleções ordenadas de itens. Funções como length() informam quantos itens há em uma lista, e element() recupera um item pelo seu índice numérico, começando em 0.

São úteis para iterar ou selecionar itens específicos.

variable "zones" {
  type    = list(string)
  default = ["us-east-1a", "us-east-1b", "us-east-1c"]
}

output "num_zones" {
  value = length(var.zones)
}

output "first_zone" {
  value = element(var.zones, 0)
}

Lidando com dados de chave e valor

Mapas armazenam dados como pares de chave e valor. lookup() recupera o valor correspondente a uma determinada chave, com um valor padrão opcional caso a chave não seja encontrada. merge() combina vários mapas em um único mapa.

É ideal para gerenciar metadados ou tags de recursos.

variable "server_info" {
  type = map(string)
  default = {
    name = "backend-server"
    env  = "dev"
  }
}

variable "additional_info" {
  type = map(string)
  default = {
    owner = "team-a"
  }
}

output "server_name" {
  value = lookup(var.server_info, "name", "unknown")
}

output "merged_map" {
  value = merge(var.server_info, var.additional_info)
}

Alterando tipos de dados

Às vezes, um valor precisa ser de um tipo de dados específico (por exemplo, uma cadeia de caracteres em vez de um número) para um argumento de recurso. Funções de conversão de tipo, como tostring() e tonumber(), ajudam a fazer isso.

Isso garante a compatibilidade entre diferentes partes da sua configuração.

variable "port_number" {
  type    = number
  default = 8080
}

output "port_as_string" {
  value = tostring(var.port_number)
}

output "string_to_number" {
  value = tonumber("123") + 7
}

Funções em ação

Funções integradas podem ser combinadas ou aninhadas para realizar transformações de dados complexas. Este exemplo constrói um nome de recurso combinando variáveis, convertendo uma delas para maiúsculas e garantindo que os tipos estejam corretos.

variable "env" {
  type    = string
  default = "dev"
}

variable "service" {
  type    = string
  default = "app"
}

variable "instance_id" {
  type    = number
  default = 1
}

output "resource_name" {
  value = join("-", [
    upper(var.env),
    var.service,
    tostring(var.instance_id)
  ])
}

Boas práticas

Ao usar funções, procure manter clareza e facilidade de manutenção:

  • Mantenha o código legível: Não aninhe funções excessivamente se isso dificultar a compreensão do código.
  • Use variáveis: Armazene resultados intermediários complexos em variáveis locais para melhorar a legibilidade.
  • Faça testes com terraform console: Experimente rapidamente as funções para ver o resultado delas antes de adicioná-las à sua configuração.

Desafio sobre funções

Vamos testar sua compreensão de como as funções integradas do Terraform funcionam em conjunto.

Funções dominadas!

Você explorou as poderosas funções integradas do Terraform!

Agora você entende como usar funções de cadeia de caracteres, numéricas, de coleções e de conversão de tipos para tornar suas configurações dinâmicas e adaptáveis. Essas ferramentas são essenciais para escrever código de infraestrutura eficiente e reutilizável.

Perguntas Frequentes

A aula “Funções integradas do Terraform” é grátis?

Sim — o texto completo de “Funções integradas do Terraform” é 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 “Funções integradas do Terraform”?

Explore uma ampla variedade de funções integradas do Terraform para manipulação de strings, processamento de listas, conversões de tipos e muito mais, aprimorando suas configurações. 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 2 de 4.

Quanto tempo leva a aula “Funções integradas do Terraform”?

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

  1. Usando loops com `for_each` e `count`
  2. Funções integradas do Terraform
  3. Expressões condicionais e splats
  4. Blocos dinâmicos para configurações aninhadas
← Voltar para Terraform Infrastructure as Code