Ferramenta gratuita

CloudFormation para diagrama

Cole um template do CloudFormation em YAML ou JSON, um template do AWS SAM ou a saída do cdk synth e receba um diagrama de arquitetura AWS editável. Os recursos viram cartões dentro da sua VPC e das suas sub-redes, e Ref, GetAtt e DependsOn viram conexões. Não é preciso ter conta para testar.

Resultado de exemplo

Diagrama de exemplo desenhado a partir de um exemplo de CloudFormation
Experimente um exemploApp web em uma VPC (YAML)API de pedidos com SAMSaída do CDK synth (JSON)

Como funciona

  1. Cole ou solte seu template

    Um template.yaml ou template.json do jeito que você faz o deploy, com tags curtas como !Ref e !Sub, ou o template que o cdk synth gera. Comentários e as formas longas Fn:: funcionam normalmente.

  2. Veja sua stack

    Cada recurso vira um cartão do seu serviço da AWS. VPCs e sub-redes viram molduras em volta do que roda nelas, e referências entre recursos viram conexões.

  3. 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 de um template do CloudFormation

O diagrama é montado a partir da seção Resources do seu template e destas propriedades:

  • ResourcesType

    As entradas de Resources, como cartões do seu Type, por exemplo AWS::Lambda::Function ou AWS::RDS::DBInstance. Tipos de ligação, como event source mappings, assinaturas do SNS e regras de entrada de grupos de segurança, viram conexões, e recursos personalizados aparecem como cartões genéricos.

  • !Ref!GetAtt!Sub

    Uma conexão sempre que uma propriedade aponta para outro recurso com Ref, Fn::GetAtt ou um nome dentro de Fn::Sub, na forma curta ou longa. Referências dentro de Fn::If ficam tracejadas, porque uma condição decide sobre elas.

  • DependsOn

    As entradas de DependsOn, seja com um único recurso ou com uma lista, como conexões tracejadas, a menos que uma referência já ligue os mesmos dois recursos. Um DependsOn para um recurso que não é desenhado, como AWS::EC2::VPCGatewayAttachment, não adiciona conexão.

  • VpcIdSubnetId

    VPCs como molduras que contêm suas sub-redes, e recursos posicionados por VpcId, SubnetId, SubnetIds ou VpcConfig: dentro da sua sub-rede, ou na moldura da VPC quando ocupam várias sub-redes.

  • EventsConnectors

    Eventos das funções SAM como conexões a partir da rota da API, rotulada por exemplo POST /orders, ou da fila, do bucket, do stream ou da regra que inicia a função. Agendamentos viram cartões de gatilho, e Connectors viram conexões Read ou Write.

  • aws:cdk:path

    Na saída do cdk synth, os cartões recebem nomes legíveis a partir de aws:cdk:path em vez dos IDs lógicos gerados, constructs com dois ou mais recursos viram molduras, e CDKMetadata e os recursos auxiliares do próprio CDK ficam ocultos.

  • AWS::CloudFormation::Stack

    Cada stack aninhada como um único cartão, ligada a partir dos recursos passados como parâmetros e até os recursos que leem suas saídas.

Templates do AWS SAM

Um template com Transform: AWS::Serverless-2016-10-31 é lido como está escrito, sem rodar sam build. Funções, APIs, APIs HTTP, tabelas simples, máquinas de estado e aplicações aninhadas ganham cartões próprios, uma API que o SAM cria a partir de um evento de função também aparece como cartão, e recursos referenciados em Policies são ligados à sua função. Globals só guarda configurações compartilhadas, então não é desenhado.

O que um diagrama do CloudFormation deixa de fora

  • Valores e padrões de parâmetros, Mappings, Outputs e o resultado de Conditions: todo recurso é desenhado, mesmo um que uma condição pularia, e valores de propriedades não aparecem.
  • Recursos dentro de uma stack aninhada ou de uma aplicação SAM, porque o template filho indicado em TemplateURL ou Location não é buscado. Valores importados de outras stacks com Fn::ImportValue são contados, não desenhados.
  • Macros e transformações que não sejam do SAM, e loops Fn::ForEach: nada é expandido, então um loop ForEach aparece como um único cartão de espaço reservado.
  • O status da stack, drift, custos ou quais serviços chamam uns aos outros em tempo de execução. O diagrama mostra como o template liga os recursos, não o tráfego real.

Perguntas sobre diagramas do CloudFormation

Ele lê templates em YAML e em JSON?

Sim. Um template YAML com tags curtas como !Ref, !GetAtt e !Sub, o mesmo template escrito com chaves Fn:: e sua versão em JSON geram o mesmo diagrama. Comentários e a linha AWSTemplateFormatVersion funcionam normalmente.

Posso visualizar um template do AWS SAM?

Sim. Cole o template.yaml como está, antes de sam build ou sam deploy. Os eventos de cada função viram conexões a partir de APIs, filas, buckets, streams e agendamentos, Connectors viram conexões Read ou Write, e uma API implícita ganha seu próprio cartão.

Como visualizo um app do AWS CDK?

Rode cdk synth e cole o template que ele imprime, ou solte, a partir da pasta cdk.out, o arquivo com o nome da sua stack, por exemplo MyStack.template.json. Os cartões recebem o nome do caminho do construct, constructs maiores viram molduras e os metadados do CDK ficam ocultos. O código CDK em si, em TypeScript, Python ou outra linguagem, não é lido.

O que acontece com stacks aninhadas?

Cada recurso AWS::CloudFormation::Stack é um único cartão, ligado aos recursos que recebe como parâmetros e aos recursos que leem suas saídas com Fn::GetAtt. O template filho não é buscado; cole esse template separadamente para ver o que há dentro.

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 template não atualizam o diagrama.

O visualizador de CloudFormation é gratuito?

Sim. Colar um template 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.