Paso 1: Descargar la plantilla de AWS CloudFormation - AWS Service Catalog

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 1: Descargar la plantilla de AWS CloudFormation

Puede usar plantillas de AWS CloudFormation para configurar y aprovisionar carteras y productos. Las plantillas son archivos de texto con formato JSON o YAML que describen los recursos que desea aprovisionar. Para obtener más información, consulte Formatos de plantilla en la Guía del usuario de AWS CloudFormation. Puede utilizar el editor de AWS CloudFormation o cualquier editor de texto de su elección para crear y guardar plantillas. En este tutorial, hemos proporcionado una plantilla sencilla para comenzar. Esta plantilla lanza una única instancia de Linux configurada para el acceso SSH.

nota

El uso de plantillas de AWS CloudFormation requiere permisos especiales. Antes de comenzar, confirme que cuenta con los siguientes permisos: Para obtener más información, consulte Requisitos previos en la Biblioteca de introducción.

Descarga de la plantilla

La plantilla de ejemplo proporcionada para este tutorial, development-environment.template, está disponible en https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template.

Descripción general de la plantilla

El texto de la plantilla de ejemplo se muestra a continuación:

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "AWS Service Catalog sample template. Creates an Amazon EC2 instance running the Amazon Linux AMI. The AMI is chosen based on the region in which the stack is run. This example creates an EC2 security group for the instance to give you SSH access. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters" : { "KeyName": { "Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.", "Type": "AWS::EC2::KeyPair::KeyName" }, "InstanceType" : { "Description" : "EC2 instance type.", "Type" : "String", "Default" : "t2.micro", "AllowedValues" : [ "t2.micro", "t2.small", "t2.medium", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "SSHLocation" : { "Description" : "The IP address range that can SSH to the EC2 instance.", "Type": "String", "MinLength": "9", "MaxLength": "18", "Default": "0.0.0.0/0", "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})", "ConstraintDescription": "Must be a valid IP CIDR range of the form x.x.x.x/x." } }, "Metadata" : { "AWS::CloudFormation::Interface" : { "ParameterGroups" : [{ "Label" : {"default": "Instance configuration"}, "Parameters" : ["InstanceType"] },{ "Label" : {"default": "Security configuration"}, "Parameters" : ["KeyName", "SSHLocation"] }], "ParameterLabels" : { "InstanceType": {"default": "Server size:"}, "KeyName": {"default": "Key pair:"}, "SSHLocation": {"default": "CIDR range:"} } } }, "Mappings" : { "AWSRegionArch2AMI" : { "us-east-1" : { "HVM64" : "ami-08842d60" }, "us-west-2" : { "HVM64" : "ami-8786c6b7" }, "us-west-1" : { "HVM64" : "ami-cfa8a18a" }, "eu-west-1" : { "HVM64" : "ami-748e2903" }, "ap-southeast-1" : { "HVM64" : "ami-d6e1c584" }, "ap-northeast-1" : { "HVM64" : "ami-35072834" }, "ap-southeast-2" : { "HVM64" : "ami-fd4724c7" }, "sa-east-1" : { "HVM64" : "ami-956cc688" }, "cn-north-1" : { "HVM64" : "ami-ac57c595" }, "eu-central-1" : { "HVM64" : "ami-b43503a9" } } }, "Resources" : { "EC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceType" }, "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ], "KeyName" : { "Ref" : "KeyName" }, "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ] } } }, "InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable SSH access via port 22", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : { "Ref" : "SSHLocation"} } ] } } }, "Outputs" : { "PublicDNSName" : { "Description" : "Public DNS name of the new EC2 instance", "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicDnsName" ] } }, "PublicIPAddress" : { "Description" : "Public IP address of the new EC2 instance", "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicIp" ] } } } }
Recursos de la plantilla

La plantilla declara recursos que deben crearse al lanzar el producto. Consta de las secciones siguientes:

  • AWSTemplateFormatVersion(opcional): la versión del formato de AWS plantilla utilizada para crear esta plantilla. La última versión de formato de plantilla es 2010-09-09 y es en la actualidad el único valor válido.

  • Descripción (opcional) – Descripción de la plantilla.

  • Parameters (opcional) - Parámetros que el usuario debe especificar para lanzar el producto. Para cada parámetro, la plantilla incluye una descripción y las restricciones que el valor escrito debe cumplir. Para obtener más información acerca de las restricciones, consulte Uso de las restricciones AWS Service Catalog.

    El parámetro KeyName permite especificar el nombre del par de claves de Amazon Elastic Compute Cloud (Amazon EC2) que los usuarios finales deben proporcionar cuando utilizan AWS Service Catalog para lanzar el producto. El par de claves se crea en el siguiente paso.

  • Metadata (opcional) – Objetos que proporcionan información adicional acerca de la plantilla. La clave AWS:CloudFormation: :Interfaz define cómo se muestran los parámetros en la vista de la consola del usuario final. La propiedad ParameterGroups define cómo se agrupan los parámetros y los encabezados de esos grupos. La propiedad ParameterLabels define los nombres intuitivos de los parámetros. Cuando un usuario especifica los parámetros para lanzar un producto que se basa en esta plantilla, la vista de la consola del usuario final muestra el parámetro con la etiqueta Server size: bajo el encabezado Instance configuration y los parámetros con la etiqueta Key pair: y CIDR range:, bajo el encabezado Security configuration.

  • Mappings (opcional) –Un mapeo de claves y valores asociados que puede utilizar para especificar valores de parámetros condicionales, similar a una tabla de búsqueda. Puede hacer coincidir una clave con el valor correspondiente mediante la función FindInMap intrínseca Fn:: de las secciones Recursos y Resultados. La plantilla anterior incluye una lista de AWSregiones y la imagen de máquina de Amazon (AMI) que corresponde a cada una. AWS Service Catalog utiliza esta asignación para determinar qué AMI usar según la AWSregión que el usuario selecciona en el archivo AWS Management Console.

  • Recursos (obligatorio) – Recursos de pila y sus propiedades. Puede consultar los recursos en las secciones Recursos y Salidas de la plantilla. En la plantilla anterior, especificamos una instancia de EC2 que ejecute Amazon Linux y un grupo de seguridad que permita a SSH acceso a la instancia. La sección Propiedades del recurso de la instancia EC2 utiliza la información que el usuario escribe para configurar el tipo de instancia y un nombre de clave para el acceso SSH.

    AWS CloudFormation utiliza la región actual de AWS para seleccionar el identificador de AMI entre los mapeos definidos anteriormente y le asigna un grupo de seguridad. El grupo de seguridad está configurado para permitir el acceso entrante en el puerto 22 desde el rango de direcciones IP de CIDR que el usuario especifica.

  • Outputs: (opcional) texto que indica al usuario cuándo se ha completado el lanzamiento de un producto. La plantilla proporcionada obtiene el nombre de DNS público de la instancia lanzada y se lo muestra al usuario. El usuario necesita el nombre de DNS para conectarse a la instancia mediante SSH.

    Para obtener más información sobre la estructura de las plantillas, consulte Referencia de las plantillas en la AWS CloudFormation Guía del usuario.