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
Como funciona
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.
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.
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:
ResourcesTypeAs 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!SubUma 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.
DependsOnAs 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.
VpcIdSubnetIdVPCs 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.
EventsConnectorsEventos 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:pathNa 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::StackCada 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.