Uso del Diseñador de AWS CloudFormation anterior para crear plantillas - AWS CloudFormation

Uso del Diseñador de AWS CloudFormation anterior para crear plantillas

nota

Infrastructure Composer en modo consola de CloudFormation es una mejora respecto al Diseñador de AWS CloudFormation. Recomendamos utilizar Infrastructure Composer en lugar de Designer siempre que sea posible. Para obtener más información, consulte Creación de plantillas visualmente con Infrastructure Composer.

El Diseñador es una herramienta gráfica para crear, consultar y modificar plantillas de AWS CloudFormation. Con Designer, puede hacer un diagrama de los recursos de su plantilla con una interfaz de arrastrar y soltar y, a continuación, editar sus detalles mediante editor de JSON y YAML integrado. Tanto si es un usuario nuevo como uno experto de AWS CloudFormation, AWS CloudFormation Designer puede ayudarle a ver rápidamente la interrelación entre los recursos de una plantilla y modificar fácilmente las plantillas.

Designer forma parte de la consola de AWS CloudFormation. Para usarlo, abra Designer en https://console.aws.amazon.com/cloudformation/designer e inicie sesión con sus credenciales de AWS.

El Diseñador ofrece los siguientes beneficios: permite ver representaciones gráficas de los recursos en su plantilla, simplifica la creación de plantillas y facilita su edición.

Visualice los recursos de la plantilla

Puede ser difícil analizar los archivos de texto con formato JSON o YAML para ver los recursos que hay en la plantilla y sus relaciones. En Designer, puede ver una representación gráfica de los recursos que se incluyen en una plantilla y la forma en que se relacionan entre sí.

Designer define la información sobre sus recursos, como el tamaño y la posición relativa, en los metadatos de la plantilla. Al abrir una plantilla, Designer añade automáticamente estos metadatos para que el diseño actual se mantenga al guardar la plantilla. Al abrir una plantilla en Designer, se muestra el diagrama exactamente como aparecía al guardar la plantilla la última vez.

Toda información de diseño se define en la clave de metadatos AWS::CloudFormation::Designer, que solo utiliza Designer y no interfieren con la creación de pilas de AWS CloudFormation. El siguiente ejemplo de metadatos de plantilla muestra la información de diseño que Designer añade a una plantilla como metadatos:

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 ...

Simplifique la creación de plantillas

Al crear recursos de plantilla en un editor de texto, se debe editar manualmente JSON o YAML, lo que puede ser tedioso y dado a errores. Al usar Designer, se emplea menos tiempo en la codificación manual de las plantillas y más tiempo en el diseño de la infraestructura de AWS. En Designer, se arrastran y sueltan nuevos recursos para agregarlos a la plantilla y se arrastran conexiones entre los recursos para establecer relaciones. Designer modifica automáticamente el JSON o YAML.

Al crear plantillas, Designer aplica algunas relaciones básicas entre los recursos que le ayudarán a crear plantillas válidas. Por ejemplo, no puede agregar una instancia de EC2 directamente dentro de una VPC; debe agregar la instancia dentro de una subred en la VPC.

También puede validar una plantilla directamente en Designer. Proporciona el mismo nivel de validación que la llamada a API ValidateTemplate, que comprueba que la sintaxis de JSON o YAML sea válida, que todos los parámetros a los que se hace referencia se declaren y que no existan dependencias circulares.

Simplifique la edición con editor de JSON y YAML integrado

Con el editor integrado, puede llevar a cabo todas las modificaciones de plantilla en la consola de AWS CloudFormation. No es necesario utilizar un editor de texto independiente para modificar y guardar las plantillas. editor integrado también ofrece una función autocompletar que enumera todos los nombres de propiedad de un recurso, por lo que no es necesario buscarlas ni memorizarlas. Además, puede utilizar el editor integrado para convertir plantillas de JSON en YAML y viceversa.

Designer tiene cuatro paneles. El panel canvas (lienzo) muestra un diagrama de los recursos de la plantilla para poder echarles un vistazo tanto a ellos como a sus relaciones. Para añadir recursos a la plantilla, arrástrelos del panel Resources types (Tipos de recursos) al panel canvas (lienzo). Utilice el panel Integrated JSON and YAML editor (Editor de JSON y YAML integrado) para especificar detalles de la plantilla, como las propiedades de recursos o los parámetros de las plantillas. Una vez que haya modificado la plantilla, puede guardarla en un archivo local o un bucket de Amazon S3. Al convertir una plantilla válida de JSON a YAML o viceversa, el panel Messages (Mensajes) muestra un mensaje de éxito o de error. Al abrir o validar una plantilla no válida, el panel Messages (Mensajes) muestra errores de validación.

nota

Designer no puede mostrar ni modificar la ejecución de los recursos en las pilas; úselo solo para crear, modificar y guardar plantillas.

El gráfico siguiente ilustra los paneles de Designer y sus componentes principales.

Paneles y componentes de Designer

Una captura de pantalla de Designer con sus paneles y componentes numerados.
1. Barra de herramientas

La barra proporciona acceso rápido a comandos para acciones comunes, como abrir y guardar plantillas, deshacer o rehacer cambios, crear una pila y validar la plantilla. También puede descargar el diagrama como una imagen, obtener ayuda o actualizar el diagrama en el panel de canvas.

2. Penal de tipos de recursos

El panel Resource types (Tipos de recursos) enumera todos los recursos de plantilla que puede agregar a la plantilla, clasificados por el nombre del servicio de AWS. Puede añadir recursos arrastrándolos desde el panel Resource types (Tipos de recursos) al lienzo. La mayor parte de los recursos compatibles se muestran en Referencia de tipos de recursos y propiedades de AWS. El panel Resource types (Tipos de recursos) no enumera los recursos conectados, como el recurso AWS::EC2::SubnetRouteTableAssociation. Puede crear estos recursos al conectar los recursos relevantes, como cuando se conecta una tabla de ruteo a una subred. Para obtener más información, consulte Panel de lienzo.

nota

Designer solo puede mostrar tipos de recursos compatibles con AWS CloudFormation. No puede mostrar otras entidades, como, por ejemplo, las zonas de disponibilidad (AZ) o los recursos de una pila anidada.

3. Panel de lienzo

El panel canvas (lienzo) muestra sus recursos de plantilla en forma de diagrama. Puede utilizarlo para añadir o eliminar recursos, crear las relaciones entre los recursos y organizarlos espacialmente. Los cambios que realice en canvas (lienzo) modifican automáticamente al código JSON o YAML de la plantilla. Para obtener más información, consulte Panel de lienzo.

4. Botón de ajuste a la ventana

Un botón que redimensiona el panel canvas (lienzo) para adaptar al diagrama de la plantilla.

5. Botones de pantalla completa y dividida

Botones para seleccionar diferentes opiniones de Designer. Puede seleccionar una vista en pantalla completa del lienzo, una vista en pantalla completa de Integrated JSON and YAML editor (Editor de JSON y YAML integrado) o una vista en pantalla dividida del lienzo y el editor.

6. Panel de editor de JSON y YAML integrado

En editor integrado, debe especificar los detalles de la plantilla, como las propiedades de los recursos o los parámetros de las plantillas. Al seleccionar un elemento en el canvas (lienzo), Designer resalta en el editor el JSON o YAML relacionado. Después de editar el archivo JSON o YAML, seleccione Actualizar diagrama (el icono de actualizar) para actualizar el diagrama. Para convertir una plantilla válida entre JSON y YAML, seleccione el botón de opción adecuado en Choose template language (Elegir lenguaje de plantilla). Designer solo puede convertir plantillas JSON o YAML válidas. Si la conversión se lleva a cabo correctamente, el panel Messages (Mensajes) muestra un mensaje como: Successfully converted the template to YAML (Se ha convertido correctamente la plantilla a YAML). AWS CloudFormation Designer no conserva el formato al convertir una plantilla.

importante

Le recomendamos que no añada comentarios de YAML # a sus plantillas de Designer. Si la plantilla YAML tiene comentarios #, Designer no los conserva al editar el YAML o convertir a JSON. Si edita o modifica la plantilla en Designer (por ejemplo, si arrastra un recurso en el canvas), sus comentarios se perderán.

Una vez que elija un idioma de plantilla, los nuevos recursos que arrastre al canvas se crearán en el idioma que haya seleccionado. Para volver a otro idioma, asegúrese de que la plantilla sea válida y luego seleccione YAML o JSON donde diga Choose template language (Elegir idioma de plantilla).

7. Panel de mensajes

Al convertir una plantilla de JSON a YAML o viceversa, el panel Messages (Mensajes) muestra un mensaje de éxito o de error. Al abrir, validar o intentar crear una pila con una plantilla no válida, el panel Messages (Mensajes) muestra errores de validación.

Panel de lienzo

Designer muestra sus recursos de plantilla en forma de diagrama en el panel canvas (lienzo). En este panel puede modificar el diseño del diagrama, añadir o eliminar recursos y añadir o eliminar conexiones entre recursos. Por ejemplo, puede añadir un grupo de Auto Scaling y una configuración de lanzamiento del panel Resource types (Tipos de recursos) al panel canvas (lienzo). Para conectar estos recursos relacionados, arrastre una conexión entre ellos.

¿Cómo modela Designer los recursos?

Al arrastrar un recurso desde el panel Resource types (Tipos de recursos) al panel canvas (lienzo), Designer lo modela como un contenedor o un objeto cuadrado.

Contenedores

Los recursos de los contenedores son rectángulos de tamaño variable que pueden contener otros recursos. Por ejemplo, Designer modela el tipo de recurso AWS::EC2::VPC como contenedor. Puede arrastrar los recursos, como una subred, a la VPC.

Recurso de contenedor

Ejemplo de un recurso de contenedor.
Objetos cuadrados

Los objetos cuadrados no pueden cambiar de tamaño ni contener otros recursos. Por ejemplo, Designer modela el tipo de recurso AWS::EC2::Instance como objeto cuadrado.

Objeto cuadrado

Ejemplo de un objeto cuadrado.

Conexión de recursos

Se conectan recursos para crear asociaciones entre recursos relacionados. Por ejemplo, cuando añade una gateway de Internet y una VPC al panel canvas (lienzo), no tienen relación. Para adjuntar la puerta de enlace a la VPC, debe conectarlos. El método para conectar recursos depende del tipo de recurso y cómo modela Designer el recurso. Las siguientes descripciones y cifras explican cada método.

Incorporación de recursos para contenedores

Al arrastrar un recurso válido a contenedores, Designer crea automáticamente las asociaciones entre el recurso y el contenedor. Por ejemplo, las VPC son los recursos contenedores; puede arrastrar una subred en una VPC y Designer asocia automáticamente los dos recursos.

Un recurso de subred dentro de un contenedor VPC.

Estas asociaciones están representados en la plantilla como una función intrínseca Ref, tal y como se muestra en el ejemplo siguiente:

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

En algunos casos, soltar un recurso en un contenedor no crea una asociación; debe arrastrar una conexión entre los recursos (consulte el siguiente método para obtener información acerca de arrastrar conexiones entre recursos). Para ver si Designer asocia recursos, utilice el editor de JSON y YAML integrado para buscar un Ref de un recurso a otro. Por ejemplo, cuando añade un grupo de Auto Scaling en un contenedor de subred, Designer no especifica la propiedad (subred) VPCZoneIdentifier del grupo. Para asociar los dos recursos, debe arrastrar una conexión desde el grupo de Auto Scaling a la subred.

Arrastrar conexiones entre recursos

El borde de cada cuadrado y recurso de contenedor tiene uno o varios puntos, que representan los recursos con los que puede crear conexiones. Para crear una conexión, arrastre una línea de conectores desde el punto hasta el tipo de recurso correspondiente. Por ejemplo, para adjuntar una puerto de enlace a Internet a la VPC, arrastre una línea desde el punto del archivo adjunto del puerto de enlace de la VPC a cualquier parte de la VPC.

Arrastrar una línea de conectores para crear una conexión (se muestra como una flecha).

Estas asociaciones se representan en la plantilla como una función intrínseca Ref o como un tipo de recurso independiente. Por ejemplo, al conectar una gateway a Internet con una VPC, Designer crea un tipo de recurso AWS::EC2::VPCGatewayAttachment en la plantilla para asociarlos. Los recursos como estos no se encuentran en el panel Resource types (Tipos de recurso).

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
Codificación de conexiones entre recursos

En algunos casos, debe editar la plantilla de JSON o YAML para crear conexiones, como cuando se conectan dos grupos de seguridad. Cuando debe editar el JSON o YAML para crear conexiones, debe crear conexiones de forma rígida (conexiones de líneas discontinuas). No se pueden crear ni editar estas conexiones en el panel canvas (lienzo).

Dos recursos conectados con una conexión de línea discontinua.

Normalmente, al integrar referencias (Ref) dentro de la propiedad de un recurso, debe crear conexiones rígidas. Por ejemplo, puede definir una conexión entre dos grupos de seguridad donde un grupo de seguridad tiene una regla de entrada integrada que permite el tráfico del otro. El siguiente recurso WebServerSecurityGroup tiene una regla de entrada con una referencia al 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

Acceso a acciones de recursos comunes con el menú de recursos

El menú Resource (Recurso) ofrece un acceso sencillo a las acciones de recursos comunes: editar las propiedades de recursos, duplicar un recurso, eliminar un recurso o consultar la documentación del recurso. Para ver el menú Resource (Recurso), haga clic con el botón derecho en un recurso en el panel canvas (lienzo). El enlace de documentación pasa a la referencia de la plantilla, que describe las propiedades y la sintaxis de dicho recurso.

Menú de recursos

El menú de recursos con sus cuatro botones.

Definición de dependencias explícitas

Para especificar el orden en el que AWS CloudFormation crea y elimina los recursos, se pueden crear dependencias explícitas. Las dependencias explícitas son útiles para anular la creación y eliminación paralelas de los recursos. AWS CloudFormation determina automáticamente qué recursos de una plantilla se pueden procesar en paralelo y cuáles no. Cuando especifica una propiedad que hace referencia a un atributo de otra fuente (con la función intrínseca Ref) o bien obtiene un atributo de otro recurso (con la función intrínseca Fn::GetAtt) en la misma plantilla, esto implica una dependencia y AWS CloudFormation las crea en el orden correcto.

Sin embargo, en algunos casos, debe definir las dependencias de forma explícita. Por ejemplo, una regla de enrutamiento no puede utilizar una puerta de enlace de Internet hasta que la puerta de enlace se haya adjuntado a la VPC. Normalmente, AWS CloudFormation crea la regla de enrutamiento inmediatamente después de que se crea la una puerto de enlace a Internet debido a una dependencia implícita. Sin embargo, AWS CloudFormation podría crear la regla antes de que la puerta de enlace de Internet se adjunte a la VPC, lo que provoca un error. Por lo tanto, debe definir una dependencia de forma explícita al adjuntar una puerta de enlace a la VPC.

Para crear una dependencia explícita, arrastre una línea desde el punto DependsOn (*) en la ruta al asociar un puerto de enlace a la VPC.

Arrastrar el punto DependsOn para crear una dependencia.

Para obtener más información acerca de cuándo habría que crear una dependencia explícita, consulte Atributo DependsOn.

JSON

En JSON, estas dependencias explícitas se representan como un atributo DependsOn en un recurso, como se muestra en el siguiente ejemplo:

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

En YAML, estas dependencias explícitas se representan como un atributo DependsOn en un recurso, como se muestra en el siguiente ejemplo:

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

Editor de JSON y YAML integrado

Utilice el editor de JSON y YAML integrado de Designer para ver y editar los detalles de la plantilla. Por ejemplo, puede utilizar editor integrado para definir las propiedades de un recurso o cambiar el parámetro de una plantilla. El editor integrado tiene dos vistas: una vista Components (Componentes) y una vista Template (Plantilla).

Para realizar pequeños cambios a una sección específica de una plantilla, use la vista Components (Componentes). En la vista Components (Componentes), los componentes que se pueden editar se dividen en pestañas. Estas pestañas cambian en función de si dispone de un recurso seleccionado.

Por ejemplo, si selecciona un recurso, Designer proporciona pestañas para editar las propiedades de los recursos y atributos, como una política de actualización o de creación. Si no ha seleccionado algo, Designer proporciona pestañas para editar los parámetros de plantilla, mapeos, condiciones, metadatos y resultados. Los cambios que realice en la vista Components (Componentes) deben tener un marcado JSON o YAML válido. Si introduce JSON o YAML, Designer revierte el marcado no válido al válido al salir de la vista Components (Componentes).

Para realizar cambios amplios en su plantilla, utilice la vista Template (Plantilla). En la vista Template (Plantilla), el editor de JSON y YAML integrado muestra el JSON o YAML sin procesar de toda la plantilla. Cuando desee hacer cambios en un recurso, selecciónelo en el panel de lienzo. Designer resalta automáticamente dicho recurso en el editor de JSON y YAML integrado.

Editor de JSON y YAML integrado de AWS CloudFormation Designer

Captura de pantalla del editor de JSON y YAML integrado con JSON sin procesar.

Conversión de plantillas a YAML o JSON

Puede convertir una plantilla válida de JSON a YAML y viceversa seleccionando el botón de opción adecuado en Choose template language (Elegir lenguaje de plantilla). Designer solo puede convertir plantillas JSON o YAML válidas. Si la conversión triunfa, el panel Messages (Mensajes) muestra un mensaje del tipo: Se ha convertido correctamente la plantilla a YAML.

importante

Le recomendamos que no agregue comentarios de YAML # a sus plantillas de Designer. Si la plantilla YAML tiene comentarios #, Designer no los conserva al editar el YAML o convertir a JSON. Si edita o modifica la plantilla en Designer (por ejemplo, si arrastra un recurso en el canvas), sus comentarios se perderán.

Una vez que elija un idioma de plantilla, los nuevos recursos que arrastre al canvas se crearán en el idioma que haya seleccionado. Para volver a otro idioma, asegúrese de que la plantilla sea válida y luego seleccione YAML o JSON donde diga Choose template language (Elegir idioma de plantilla).

nota

Al convertir una plantilla en YAML, Designer utiliza la notación abreviada para las funciones. Por ejemplo, - !GetAtt. Además, los enlaces visuales que utilice emplearán la notación abreviada en modo YAML. Para obtener más información acerca de las funciones intrínsecas, consulte Ref.

Autocompletar

editor de JSON y YAML integrado incluye una característica de autocompletar que ayuda a especificar las propiedades de los recursos, para no tener que recordar los nombres de las propiedades. Para ver una lista de las propiedades válidas en una plantilla de JSON, pulse Ctrl+Space entre las llaves de Properties ({}), tal y como se muestra en el ejemplo siguiente:

Opciones para autocompletar en un ejemplo de JSON.

Para obtener una plantilla YAML, primero elimine las llaves de apertura y cierre y luego pulse Enter para ir a una nueva línea. Para ver una lista de las propiedades válidas, pulse Ctrl+Space en la nueva línea después de Properties, tal y como se muestra en el ejemplo siguiente:

Opciones para autocompletar en un ejemplo de YAML.

Métodos abreviados de teclado

El editor de JSON y YAML integrado de Designer proporciona los siguientes métodos abreviados de teclado:

Ctrl+espacio

Dentro de la clave Properties de un recurso, enumera todas las propiedades disponibles para dicho recurso.

Ctrl+F

Busca un valor específico.

Para resaltar todo lo que coincida con el valor específico, pulse Alt+Enter.

Para ver ejemplos de cómo usar AWS CloudFormation Designer para crear y actualizar las plantillas, consulte los siguientes tutoriales: