Usar o AWS CloudFormation Designer antigo para criar modelos - AWS CloudFormation

Usar o AWS CloudFormation Designer antigo para criar modelos

nota

O Application Composer no modo de console do CloudFormation é um aprimoramento do Designer do AWS CloudFormation. É recomendável utilizar o Application Composer em vez do Designer sempre que possível. Para ter mais informações, consulte Crie modelos visualmente com o Application Composer.

O Designer é uma ferramenta gráfica para criar, visualizar e modificar modelos do AWS CloudFormation. Com o Designer, você pode diagramar os recursos do modelo usando uma interface arrastar e soltar e editar os detalhes usando o editor de JSON e YAML integrado. Independentemente de ser um usuário do AWS CloudFormation novo ou experiente, o AWS CloudFormation Designer pode ajudar a ver rapidamente a inter-relação entre os recursos de um modelo e modificar facilmente modelos.

O Designer faz parte do console do AWS CloudFormation. Para usá-lo, abra o Designer em https://console.aws.amazon.com/cloudformation/designer e faça login com suas credenciais da AWS.

O Designer oferece os seguintes benefícios: permite que você veja as representações gráficas dos recursos no modelo e simplifica a criação e a edição de modelos.

Visualizar recursos do modelo

A análise de arquivos de texto formatados em JSON ou YAML para ver os recursos que estão no modelo e os relacionamentos pode ser difícil. Em Designer, você pode ver uma representação gráfica dos recursos incluídos em um modelo e como eles se relacionam entre si.

Designer define as informações sobre os recursos, como o tamanho, a posição relativa, em metadados de modelo. Quando você abre um modelo, Designer adiciona automaticamente esses metadados, de maneira que o layout atual seja preservado quando salva o modelo. Quando você reabre um modelo no Designer, ele exibe o diagrama exatamente como ele é exibido quando você salvou o modelo pela última vez.

Todas as informações de layout são definidas na chave de metadados AWS::CloudFormation::Designer, usada apenas pelo Designer, e não interferirão na criação de pilhas do AWS CloudFormation. O exemplo a seguir de metadados do modelo mostra as informações de layout que Designer adiciona a um modelo como metadados:

JSON

"Metadata": { "AWS::CloudFormation::Designer": { "6b56eaae-0bb6-4215-aad6-12345EXAMPLE": { "size": { "width": 60, "height": 60 }, "position": { "x": 340, "y": 430 }, "z": 2, "parent": "21ccc9b0-29e9-4a86-9cf2-12345EXAMPLE", "embeds": [], "ismemberof": [ "c3eead73-6a76-4532-9268-12345EXAMPLE" ] }, ...

YAML

Metadata: 'AWS::CloudFormation::Designer': 6b56eaae-0bb6-4215-aad6-12345EXAMPLE: size: width: 60 height: 60 position: x: 340 'y': 430 z: 2 parent: 21ccc9b0-29e9-4a86-9cf2-12345EXAMPLE embeds: [] ismemberof: - c3eead73-6a76-4532-9268-12345EXAMPLE ...

Simplificar a criação de modelos

Ao criar recursos de modelo em um editor de textos, você deve editar manualmente JSON ou YAML, o que pode ser entediante e propenso a erros. Usando o Designer, você passa menos tempo codificando manualmente os modelos e mais tempo projetando a infraestrutura da AWS. No Designer, você arrasta e solta novos recursos para adicioná-los ao modelo e arrasta conexões entre os recursos para estabelecer relações. O Designer modifica automaticamente JSON ou YAML.

Quando você cria modelos, Designer impõe algumas relações básicas entre recursos para ajudar a criar modelos válidos. Por exemplo, você não pode adicionar uma instância EC2 diretamente dentro de uma VPC; você deve adicionar a instância dentro de uma sub-rede na VPC.

Você também pode validar um modelo diretamente no Designer. Ele fornece o mesmo nível de validação da chamada à API ValidateTemplate, que verifica se a sintaxe JSON ou YAML é válida, se todos os parâmetros referenciados estão declarados e se não há dependências circulares.

Simplificar a edição usando o editor de JSON e YAML integrado

Com o editor integrado, você pode fazer modificações no seu modelo no console do AWS CloudFormation. Você não precisa usar um editor de texto à parte para modificar e salvar os modelos. O editor integrado também fornece um recurso de autocompletar que lista todos os nomes de propriedade de um recurso. Assim, você não precisa examinar ou memorizá-los. Além disso, você pode usar o editor integrado para converter modelos JSON em YAML e vice-versa.

O Designer tem quatro painéis. O painel de tela mostra um diagrama dos recursos do modelo, de maneira que você possa vê-los e suas relações rapidamente. Para adicionar recursos ao modelo, você os arrasta do painel Tipos de recursos para o painel de tela. Use o painel Editor integrado de JSON e YAML para especificar os detalhes do modelo, como as propriedades do recurso ou os parâmetros do modelo. Depois que tiver modificado o modelo, você poderá salvá-lo em um arquivo local ou em um bucket do Amazon S3. Quando você converte um modelo válido do JSON para YAML, ou vice-versa, o painel Mensagens exibe uma mensagem de êxito ou falha. Quando você abre ou valida um modelo inválido, o painel Mensagens exibe os erros de validação.

nota

O Designer não pode mostrar nem modificar a execução de recursos nas pilhas; use-o apenas para criar, modificar e salvar modelos.

A figura a seguir ilustra os painéis do Designer e os componentes principais.

Painéis e componentes do Designer

Uma captura de tela do Designer com painéis e componentes numerados.
1. Barra de ferramentas

A barra de ferramentas fornece acesso rápido a comandos para ações comuns, como abrir e salvar modelos, desfazer ou refazer alterações, criar uma pilha e validar o modelo. Você também pode fazer download do diagrama como uma imagem, receber ajuda ou atualizar o diagrama no painel da tela.

2. Painel de tipos de recursos

O painel Resource types (Tipos de recursos) lista todos os recursos de modelo que você pode adicionar ao modelo, categorizados pelo nome do produto da AWS. Você adiciona recursos arrastando-os do painel Tipos de recursos para a tela. A maioria dos recursos compatíveis está listada no Referência de tipos de propriedades e recursos da AWS. O painel Tipos de recursos não lista os recursos de conexão, como o recurso AWS::EC2::SubnetRouteTableAssociation. Você cria esses recursos ao conectar os recursos relevantes, como quando conecta uma tabela de rotas a uma sub-rede. Para ter mais informações, consulte Painel de tela.

nota

O Designer pode exibir apenas tipos de recursos com suporte pelo AWS CloudFormation. Ele não pode exibir outras entidades, como Availability Zones (AZs – Zonas de disponibilidade) ou recursos de uma pilha aninhada.

3. Painel de tela

O painel de tela exibe os recursos de modelo como um diagrama. Você pode usá-lo para adicionar ou remover recursos, criar relacionamentos entre recursos e organizar o layout. As alterações que você faz no painel de tela modificam automaticamente o JSON ou o YAML do modelo. Para ter mais informações, consulte Painel de tela.

4. Botão de ajuste à janela

Um botão que redimensiona o painel de tela para se ajustar ao diagrama do modelo.

5. Botões de tela inteira e de tela dividida

Botões para selecionar visualizações diferentes de Designer. Você pode selecionar uma visualização em tela inteira da tela, uma visualização em tela inteira do Editor integrado de JSON e YAML ou uma visualização em tela dividida da tela e do editor.

6. Painel do editor de JSON e YAML integrado

No editor integrado, você especifica os detalhes do modelo, como propriedades de recurso ou parâmetros de modelo. Quando você seleciona um item na tela, o Designer destaca o JSON ou o YAML relacionado no editor. Depois de editar o JSON ou o YAML, você deve atualizar a tela (escolha Two circular arrows forming a loop, representing a refresh or sync operation. ) para atualizar o diagrama. Você pode converter um modelo válido entre JSON e YAML selecionando o botão de opção apropriado em Choose template language (Escolher linguagem do modelo). O Designer só pode converter modelos JSON ou YAML válidos. Caso a conversão seja bem-sucedida, o painel Messages (Mensagens) exibirá uma mensagem como Successfully converted the template to YAML (Conversão bem-sucedida do modelo em YAML). AWS CloudFormation O Designer não preserva a formatação ao converter um modelo.

Importante

É recomendável não adicionar comentários # YAML aos modelos no Designer. Se o modelo YAML tiver comentários #, o Designer não preservará esses comentários ao editar o YAML ou converter em JSON. Se você editar ou modificar o modelo no Designer (por exemplo, se arrastar um recurso na tela), os comentários serão perdidos.

Assim que você escolher uma linguagem de modelo, todos os novos recursos que você arrastar para a tela serão criados na linguagem que selecionou. Para mudar de volta para a outra linguagem, verifique se o modelo é válido e, em seguida, selecione YAML ou JSON em Escolher linguagem do modelo.

7. Painel de mensagens

Quando você converte um modelo do JSON para YAML, ou vice-versa, o painel Mensagens exibe uma mensagem de êxito ou falha. Quando você abre, valida ou tenta criar uma pilha com um modelo inválido, o painel Mensagens exibe os erros de validação.

Painel de tela

O Designer exibe os recursos de modelo como um diagrama no painel de tela. Você pode modificar o layout do diagrama, adicionar ou remover recursos e adicionar ou remover conexões entre recursos nesse painel. Por exemplo, você pode adicionar um grupo do Auto Scaling e uma configuração de execução do painel Tipos de recursos ao painel de tela. Para conectar esses recursos relacionados, arraste uma conexão entre eles.

Como o Designer modela os recursos?

Quando você arrasta um recurso do painel Tipos de recursos para o painel de tela, o Designer o modela como um contêiner ou um objeto quadrado.

Contêineres

Recursos de contêiner são retângulos redimensionáveis que podem conter outros recursos. Por exemplo, o Designer modela o tipo de recurso AWS::EC2::VPC como um contêiner. Você pode arrastar recursos, como uma sub-rede para a VPC.

Recurso de contêiner

Exemplo de um recurso de contêiner.
Objetos quadrados

Os recursos de objetos quadrados não podem ser redimensionados nem conter outros recursos. Por exemplo, o Designer modela o tipo de recurso AWS::EC2::Instance como um objeto quadrado.

Objeto quadrado

Exemplo de um objeto quadrado.

Conectar recursos

Você conecta recursos para criar associações entre recursos relacionados. Por exemplo, quando você adiciona um gateway da Internet e uma VPC ao painel de tela, eles não têm relação. Para anexar o gateway à VPC, você deve se conectar a eles. O método para conexão de recursos depende do tipo de recurso e como o Designer modela o recurso. As descrições e os valores a seguir explicam cada método.

Adição de recursos a contêineres

Quando você arrasta recursos válidos para contêineres, o Designer cria automaticamente associações entre o recurso e o contêiner. Por exemplo, VPCs são recursos de contêiner. Você pode arrastar uma sub-rede para um VPC, e o Designer associa automaticamente os dois recursos.

Um contêiner de recurso de sub-rede dentro de um contêiner de VPC.

Essas associações são representadas no modelo como uma função intrínseca Ref, conforme mostrado no seguinte exemplo:

JSON

"PublicSubnet": { "Type": "AWS::EC2::Subnet", "Properties": { "VpcId": { "Ref": "VPC" }, "CidrBlock": "10.0.0.0/24" }

YAML

PublicSubnet: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref VPC CidrBlock: 10.0.0.0/24

Em alguns casos, soltar um recurso em um contêiner não criar uma associação. Você deve arrastar uma conexão entre os recursos (consulte o próximo método para obter informações sobre como arrastar conexões entre recursos). Para saber se o Designer associa recursos, use o editor de JSON e YAML integrado para procurar um Ref de um recurso para outro. Por exemplo, quando você adiciona um grupo do Auto Scaling em um contêiner de sub-rede, o Designer não especifica a propriedade VPCZoneIdentifier (sub-rede) do grupo. Para associar os dois recursos, você deve arrastar uma conexão do grupo do Auto Scaling para a sub-rede.

Arrastar conexões entre recursos

A presença de cada quadrado e recurso de contêiner tem um ou mais pontos, que representam os recursos com os quais você pode criar conexões. Para criar uma conexão, arraste uma linha de conector do ponto até o tipo de recurso correspondente. Por exemplo, para anexar um gateway de Internet para a VPC, arraste uma linha do anexo de gateway da VPC para qualquer lugar na VPC.

Arrastar uma linha de conector para criar uma conexão (mostrada como uma seta).

Essas associações são representadas no modelo como uma função intrínseca Ref ou como um tipo de recurso à parte. Por exemplo, quando você conecta um gateway de Internet a uma VPC, o Designer cria um tipo de recurso AWS::EC2::VPCGatewayAttachment no modelo para associá-los. Recursos como esses não são listados no painel Resource types (Tipos de recursos).

JSON

"VPCGatewayAttachment": { "Type": "AWS::EC2::VPCGatewayAttachment", "Properties": { "InternetGatewayId": { "Ref": "InternetGateway" }, "VpcId": { "Ref": "VPC" } }

YAML

VPCGatewayAttachment: Type: 'AWS::EC2::VPCGatewayAttachment' Properties: InternetGatewayId: !Ref InternetGateway VpcId: !Ref VPC
Codificação de conexões entre recursos

Em alguns casos, você deve editar JSON ou YAML do modelo para criar conexões, como ao conectar dois grupos de segurança. Quando precisa editar JSON ou YAML para criar conexões, você cria conexões codificadas (conexões de linha tracejada). Você não pode criar ou editar essas conexões no painel de tela.

Dois recursos conectados com uma conexão de linha tracejada.

Normalmente, ao incorporar referências (Ref) dentro de uma propriedade do recurso, você cria conexões codificadas. Por exemplo, você pode definir uma conexão entre dois grupos de segurança em que um grupo de segurança tem uma regra de entrada incorporada que permite o tráfego entre si. O recurso WebServerSecurityGroup a seguir tem uma regra de entrada com uma referência para o recurso PublicLoadBalancerSecurityGroup.

JSON

"WebServerSecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "VpcId": { "Ref": "VPC" }, "GroupDescription": "Allow access from HTTP and SSH traffic", "SecurityGroupIngress": [ { "IpProtocol": "tcp", "FromPort": 80, "ToPort": 80, "CidrIp": "0.0.0.0/0" }, { "IpProtocol": "tcp", "FromPort": 22, "ToPort": 22, "CidrIp": { "Ref": "SSHLocation" } } ] } ...

YAML

WebServerSecurityGroup: Type: 'AWS::EC2::SecurityGroup' Properties: VpcId: !Ref VPC GroupDescription: Allow access from HTTP and SSH traffic SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: !Ref SSHLocation

Acessar ações de recurso comuns com o menu de recursos

O menu Recurso fornece acesso fácil a ações de recursos comuns: edição de propriedades de recurso, duplicação de um recurso, exclusão de um recurso ou visualização da documentação do recurso. Para visualizar o menu Recurso, clique com o botão direito do mouse em um recurso no painel de tela. O link de documentação vai até a referência de modelo, que descreve as propriedades e a sintaxe desse recurso.

Menu de recursos

O menu de recurso com os quatro botões.

Definir dependências explícitas

Para especificar a ordem na qual o AWS CloudFormation cria e exclui recursos, você pode criar dependências explícitas. As dependências explícitas são úteis para substituir a criação e a exclusão de recursos paralelos. O AWS CloudFormation determina automaticamente quais recursos em um modelo podem ser processados em paralelo e quais não podem. Quando você especifica uma propriedade que referencia um atributo de outra fonte (usando a função intrínseca Ref) ou recebe um atributo de outro recurso (com a função intrínseca Fn::GetAtt) no mesmo modelo, isso implica uma dependência, e o AWS CloudFormation o compila na ordem correta.

No entanto, em alguns casos, você deve definir explicitamente dependências. Por exemplo, uma regra de roteamento não pode usar um gateway de Internet até que o gateway tenha sido conectado à VPC. Normalmente, o AWS CloudFormation cria a regra de roteamento imediatamente após a criação do gateway de Internet por causa de uma dependência implícita. Porém, o AWS CloudFormation poderá criar a regra antes do gateway de Internet ter sido conectado à VPC, o que causa um erro. Portanto, você deve definir explicitamente uma dependência no anexo gateway-VPC.

Para criar uma dependência explícita, arraste uma linha do ponto DependsOn (*) na rota para o anexo do gateway-VPC.

Arrastar o ponto DependsOn para criar uma dependência.

Para obter mais informações sobre quando você talvez possa precisar criar uma dependência explícita, consulte Atributo DependsOn.

JSON

Em JSON, essas dependências explícitas são representadas como um atributo DependsOn em um recurso, conforme mostrado no seguinte exemplo:

"PublicRoute": { "Type": "AWS::EC2::Route", "DependsOn": "VPCGatewayAttachment", "Properties": { "DestinationCidrBlock": "0.0.0.0/0", "RouteTableId": { "Ref": "PublicRouteTable" }, "GatewayId": { "Ref": "InternetGateway" } }
YAML

Em YAML, essas dependências explícitas são representadas como um atributo DependsOn em um recurso, conforme mostrado no seguinte exemplo:

PublicRoute: Type: 'AWS::EC2::Route' DependsOn: - VPCGatewayAttachment Properties: DestinationCidrBlock: 0.0.0.0/0 RouteTableId: !Ref PublicRouteTable GatewayId: !Ref InternetGateway

Editor de JSON e YAML integrado

Use o editor de JSON e YAML integrado do Designer para visualizar e editar os detalhes do modelo. Por exemplo, você pode usar o editor integrado para definir as propriedades de um recurso ou alterar um parâmetro de modelo. O editor integrado tem duas visualizações: Components (Componentes) e Template (Modelo).

Para fazer alterações mínimas em uma seção específica de um modelo, use a visualização de Componentes. Na visualização de Componentes, os componentes que você pode editar estão divididos em guias. Essas guias são alteradas dependendo do recurso selecionado.

Por exemplo, caso você selecione um recurso, Designer fornece guias para editar as propriedades e os atributos do recurso, como uma política de atualização ou de criação. Caso você não tenha selecionado nada, o Designer fornece guias para editar os parâmetros de modelo, os mapeamentos, as condições, os metadados e as saídas. Todas as alterações que você faz na visualização de Componentes devem ser marcações válidas em JSON ou YAML. Se você introduzir marcações JSON ou YAML inválidas, o Designer reverterá a marcação inválida para uma marcação válida quando você deixar a visualização Components (Componentes).

Para fazer alterações amplas no modelo, use a visualização de Modelo. Na visualização de Template (Modelo), o editor de JSON e YAML integrado mostra o JSON ou o YAML bruto de todo o modelo. Quando você quiser fazer alterações em um recurso, selecione-o no painel de tela. O Designer realça automaticamente esse recurso no editor de JSON e YAML integrado.

Editor JSON e YAML integrado do AWS CloudFormation Designer

Captura de tela do editor de JSON e YAML integrado com JSON bruto.

Conversão de modelos em YAML ou JSON

Você pode converter e reconverter um modelo válido entre JSON e YAML selecionando o botão de opção apropriado em Choose template language (Escolher linguagem do modelo). O Designer só pode converter modelos JSON ou YAML válidos. Caso a conversão seja bem-sucedida, o painel Mensagens exibirá uma mensagem como: Conversão bem-sucedida do modelo em YAML.

Importante

É recomendável não adicionar comentários do # YAML aos modelos no Designer. Se o modelo YAML tiver comentários #, o Designer não preservará esses comentários ao editar o YAML ou converter em JSON. Se você editar ou modificar o modelo no Designer (por exemplo, se arrastar um recurso na tela), os comentários serão perdidos.

Assim que você escolher uma linguagem de modelo, todos os novos recursos que você arrastar para a tela serão criados na linguagem que selecionou. Para mudar de volta para a outra linguagem, verifique se o modelo é válido e, em seguida, selecione YAML ou JSON em Escolher linguagem do modelo.

nota

Quando você converte um modelo em YAML, o Designer usa a notação de forma curta para funções. Por exemplo, - !GetAtt. Além disso, todos os links visuais que você desenhar usará a notação de forma curta em modo YAML. Para obter mais informações sobre funções intrínsecas, consulte Ref.

Preenchimento automático

O editor de JSON e YAML integrado inclui um recurso de autocompletar que ajuda a especificar propriedades do recurso, de maneira que você não precise lembrar nomes de propriedade. Para ver uma lista de propriedades válidas em um modelo JSON, pressione Ctrl+Space dentro das Properties chaves ({}), conforme mostrado no seguinte exemplo:

Opções de preenchimento automático em um exemplo de JSON.

Para um modelo YAML, você pode excluir primeiramente as chaves de abertura e fechamento e pressionar Enter a fim de ir para uma nova linha. Para ver uma lista de propriedades válidas, pressione Ctrl+Space na nova linha depois de Properties, conforme mostrado no seguinte exemplo:

Opções de preenchimento automático em um exemplo de YAML.

Atalhos de teclado

O editor de JSON e YAML integrado do Designer fornece os seguintes atalhos de teclado:

Ctrl+Espaço

Na chave Properties de um recurso, lista todas as propriedades disponíveis para o recurso.

Ctrl+F

Procura um valor especificado.

Para destacar tudo o que corresponde ao valor especificado, pressione Alt+Enter.

Para obter exemplos de como usar o AWS CloudFormation Designer para criar e atualizar modelos, consulte as seguintes apresentações: