Ferramenta gratuita
Terraform para diagrama
Cole arquivos .tf do Terraform ou a saída de terraform show -json e receba um diagrama de arquitetura editável: VPCs, sub-redes e grupos de recursos viram molduras, recursos viram cartões e referências viram conexões. Não é preciso ter conta para testar.
Resultado de exemplo
Como funciona
Cole ou solte seu Terraform
Um arquivo .tf, vários arquivos do mesmo módulo ou o JSON que terraform show -json imprime para um plano salvo ou para o seu state. Não é preciso rodar terraform init.
Veja a arquitetura
Cada recurso vira um cartão do seu tipo, como computação, banco de dados ou fila. Redes, sub-redes e grupos de recursos viram molduras em volta dos recursos que ficam dentro deles.
Abra no Archboard
Salve como um novo diagrama para reorganizar os cartões, adicionar notas, compartilhar um link ou exportar em SVG e PNG. Para se cadastrar basta uma conta Google ou GitHub.
O que é desenhado a partir do código Terraform
O diagrama é montado a partir destes blocos e argumentos da sua configuração:
resourcedataOs recursos, como cartões do seu tipo. Recursos de ligação como aws_lb_target_group_attachment viram conexões, recursos de configuração como aws_s3_bucket_versioning ficam recolhidos no bucket, e data sources são ignorados, a menos que haja recursos dentro deles.
depends_onUma conexão para cada referência de um recurso a outro, como aws_iam_role.app.arn, inclusive dentro de strings, heredocs e locals. depends_on adiciona uma conexão tracejada, a menos que uma referência já ligue os dois recursos ou que o destino seja um auxiliar oculto como time_sleep.
vpc_idsubnet_idO posicionamento por vpc_id e subnet_id: um recurso em uma única sub-rede fica dentro dela, um recurso espalhado por várias sub-redes de uma VPC fica na moldura da VPC, e os recursos do Azure ficam no seu grupo de recursos.
modulesourceCada bloco module como um cartão. Módulos conhecidos do registry, como terraform-aws-modules/vpc/aws, eks e rds, viram a moldura de rede, o cluster ou o banco de dados que criam, e os recursos que usam as sub-redes do módulo de VPC ficam dentro dessa moldura.
resource_changesCom o plano em JSON, cada cartão de recurso mostra o que o plano vai fazer com ele: + criar, ~ atualizar, − excluir ou ± substituir. Recursos que o plano não altera ficam sem marca, assim como molduras como VPCs e sub-redes e configurações recolhidas em um cartão.
awsazurermgoogleRecursos da AWS, do Azure e do Google Cloud, juntos em um diagrama quando você usa vários provedores. Tipos sem um cartão próprio aparecem como cartões genéricos que mostram o tipo do recurso.
Visualizador de plano do Terraform
O plano em JSON gera o diagrama mais completo: count e for_each viram números reais de instâncias, os módulos mostram seus recursos e os cartões de recursos ficam marcados com a mudança planejada. Rode estes dois comandos onde você costuma rodar terraform plan e depois cole o JSON:
Cria um plano e o salva em plan.out sem aplicar nada.
terraform plan -out plan.outImprime o plano salvo como JSON. Cole a saída ou redirecione-a para plan.json e solte esse arquivo aqui.
terraform show -json plan.out
O que um diagrama do Terraform deixa de fora
- Valores de variáveis e locals, arquivos .tfvars, tags, user_data e outros valores de atributos. Os cartões usam nomes literais como bucket ou function_name ou, na falta deles, o nome do recurso no seu código.
- A expansão de count e for_each nos arquivos .tf: a configuração não é avaliada, então um recurso com count = 3 é um único cartão marcado ×3, e um com for_each é marcado ×N. Cole o plano em JSON para ver os números reais de instâncias.
- O conteúdo de módulos remotos: módulos do registry e do Git não são baixados. Um módulo que não está entre os conhecidos fica como um único cartão, e o plano em JSON mostra os recursos dentro dele.
- O estado real da nuvem, drift, custos ou quais serviços chamam uns aos outros em tempo de execução. O diagrama mostra como a sua configuração liga os recursos, não o tráfego.
Perguntas sobre diagramas do Terraform
Devo colar arquivos .tf ou o plano em JSON?
Arquivos .tf são o jeito mais rápido de ver a estrutura do seu código, e nada precisa rodar antes. O plano em JSON é mais completo porque o Terraform já o resolveu: as contagens são reais, os módulos estão expandidos e os cartões de recursos mostram a mudança planejada. Use .tf para uma olhada rápida e o plano em JSON quando for revisar uma mudança.
Posso adicionar vários arquivos .tf de uma vez?
Sim. Solte vários arquivos .tf, ou uma pasta de módulo inteira, e eles são lidos juntos, do mesmo jeito que o Terraform lê todos os arquivos .tf de um diretório. Você também pode colar os arquivos um depois do outro na caixa. Entradas JSON, como um plano ou um arquivo de state, são lidas um arquivo por vez.
Quais provedores de nuvem são suportados?
AWS, Azure e Google Cloud. Tipos de recursos comuns viram cartões como computação, função, banco de dados, fila, balanceador de carga ou DNS, e redes, sub-redes e grupos de recursos viram molduras. Recursos do Kubernetes e do Helm aparecem como cartões genéricos, e provedores utilitários como random, time e null_resource ficam ocultos.
Posso visualizar o state do Terraform?
Sim. Cole a saída de terraform show -json do seu state atual ou solte um arquivo terraform.tfstate bruto. O diagrama mostra tipos, nomes e dependências dos recursos, e um nome marcado como sensitive é trocado pelo nome do recurso no seu código. Um arquivo .tfvars não é aceito, porque guarda só valores de variáveis.
O que acontece quando abro o diagrama no Archboard?
A prévia desta página não é salva. Quando você escolhe “Abrir no Archboard”, o diagrama que você vê, com cartões, molduras, nomes e conexões, é salvo como um novo diagrama no seu espaço de trabalho, onde dá para reorganizar, anotar, compartilhar ou exportar. É um ponto de partida: mudanças posteriores no seu código Terraform não atualizam o diagrama.
O visualizador de Terraform é gratuito?
Sim. Colar código Terraform e ver o diagrama não exige conta. Para abrir no Archboard, basta uma conta gratuita.
Abra um canvas em um minuto
Entre com Google ou GitHub. Grátis para um assento. Faça upgrade quando a equipe entrar.