Painel de tela - AWS CloudFormation

Painel de tela

O Application Composer do AWS Application Composer no modo de console do CloudFormation é um aprimoramento do Designer do AWS CloudFormation. Para ter mais informações, consulte AWS Application Composer no modo de console do AWS CloudFormation.

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