

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.

# Ejemplos de creación y administración de plantillas de lanzamiento con AWS CLI
<a name="examples-launch-templates-aws-cli"></a>

Puede crear y administrar plantillas de lanzamiento mediante los Consola de administración de AWS, AWS Command Line Interface (AWS CLI) o los SDK. En esta sección se muestran ejemplos de creación y administración de plantillas de lanzamiento para Amazon EC2 Auto Scaling desde AWS CLI.

**Topics**
+ [Ejemplo de uso](#example-usage)
+ [Creación de una plantilla de lanzamiento básica](#example-simple-launch-template)
+ [Especificar etiquetas que etiquetan instancias en el lanzamiento](#example-tag-instances)
+ [Especificar un rol de IAM para transferir a instancias](#example-iam-profile)
+ [Asignación de direcciones IP públicas](#example-primary-network-interface)
+ [Especificar un script de datos de usuario que configura instancias en el lanzamiento](#example-user-data)
+ [Especificar una asignación de dispositivos de bloques](#example-block-device-mapping)
+ [Especificar hosts dedicados para traer licencias de software de proveedores externos](#example-dedicated-hosts)
+ [Especificar una interfaz de red existente](#example-existing-eni-launch-template)
+ [Creación de múltiples interfaces de red](#example-multiple-efa-enabled-network-interfaces)
+ [Administración de las plantillas de lanzamiento](#launch-templates-additional-cli-commands)
+ [Actualización de un grupo de Auto Scaling para utilizar una plantilla de lanzamiento](#update-asg-launch-template-cli)

## Ejemplo de uso
<a name="example-usage"></a>

```
{
    "LaunchTemplateName": "my-template-for-auto-scaling",
    "VersionDescription": "test description",
    "LaunchTemplateData": {
        "ImageId": "ami-04d5cc9b88example",
        "InstanceType": "t2.micro",
        "SecurityGroupIds": [
            "sg-903004f88example"
        ], 
        "KeyName": "MyKeyPair",
        "Monitoring": {
            "Enabled": true
        },
        "Placement": {
            "Tenancy": "dedicated"
        },
        "CreditSpecification": {
            "CpuCredits": "unlimited"
        },
        "MetadataOptions": {
            "HttpTokens": "required",
            "HttpPutResponseHopLimit": 1,
            "HttpEndpoint": "enabled"
        }
    }
}
```

## Creación de una plantilla de lanzamiento básica
<a name="example-simple-launch-template"></a>

Para crear una plantilla de lanzamiento básica, utilice el [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)comando siguiente, con las siguientes modificaciones: 
+ Reemplace `ami-04d5cc9b88example` con el ID de la AMI desde la que se lanzan las instancias.
+ Reemplace `t2.micro` con un tipo de instancia que sea compatible con la AMI que especificó.

En este ejemplo, se crea una plantilla de lanzamiento con el nombre*my-template-for-auto-scaling*. Si las instancias creadas por esta plantilla de inicio se inician en una VPC predeterminada, recibirán una dirección IP pública de forma predeterminada. Si las instancias se lanzan en una VPC no predeterminada, no reciben una dirección IP pública de forma predeterminada.

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

Para obtener más información acerca de cómo citar parámetros con formato JSON, consulte [Uso de comillas con cadenas en AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html) en la *Guía del usuario de AWS Command Line Interface *.

Si lo desea, también puede especificar los parámetros con formato JSON en un archivo de configuración.

En el ejemplo siguiente se crea una plantilla de lanzamiento básica, que hace referencia a un archivo de configuración para los valores de parámetro de plantilla de lanzamiento. 

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data file://config.json
```

Contenido de `config.json`:

```
{ 
    "ImageId":"ami-04d5cc9b88example",
    "InstanceType":"t2.micro"
}
```

## Especificar etiquetas que etiquetan instancias en el lanzamiento
<a name="example-tag-instances"></a>

En el siguiente ejemplo se agrega una etiqueta (por ejemplo, `purpose=webserver`) a instancias en el lanzamiento.

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"purpose","Value":"webserver"}]}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

**nota**  
Si especifica etiquetas de instancia en la plantilla de lanzamiento y elige propagar las etiquetas del grupo de Auto Scaling a sus instancias, todas las etiquetas se fusionarán. Si se especifica la misma clave de etiqueta para una etiqueta en su plantilla de lanzamiento y una etiqueta en su grupo de Auto Scaling, entonces el valor de la etiqueta del grupo tiene prioridad. 

## Especificar un rol de IAM para transferir a instancias
<a name="example-iam-profile"></a>

En el ejemplo siguiente se especifica el nombre del perfil de instancia asociado con el rol de IAM que se va a transferir a las instancias en el lanzamiento. Para obtener más información, consulte [Rol de IAM para aplicaciones que se ejecuten en instancias de Amazon EC2](us-iam-role.md).

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
--launch-template-data '{"IamInstanceProfile":{"Name":"my-instance-profile"},"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Asignación de direcciones IP públicas
<a name="example-primary-network-interface"></a>

En el siguiente [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)ejemplo, se configura la plantilla de lanzamiento para asignar direcciones públicas a las instancias lanzadas en una VPC no predeterminada. 

**nota**  
Cuando especifique una interfaz de red, especifique un valor para `Groups` que se corresponda con los grupos de seguridad de la VPC en la que el grupo de Auto Scaling lanzará las instancias. Especifique las subredes de la VPC como propiedades del grupo de Auto Scaling. 



```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Especificar un script de datos de usuario que configura instancias en el lanzamiento
<a name="example-user-data"></a>

En el ejemplo siguiente se especifica una secuencia de comandos de datos de usuario como una cadena codificada en base64 que configura instancias en el momento del lanzamiento. El [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)comando requiere datos de usuario codificados en base64.

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
--launch-template-data '{"UserData":"IyEvYmluL2Jhc...","ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Especificar una asignación de dispositivos de bloques
<a name="example-block-device-mapping"></a>

El siguiente [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)ejemplo crea una plantilla de lanzamiento con una asignación de dispositivos de bloques: un volumen de EBS de 22 gigabytes asignado a. `/dev/xvdcz` El volumen `/dev/xvdcz` utiliza el tipo de volumen SSD de uso general (gp2) y se elimina al finalizar la instancia a la que está adjunta. 

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"BlockDeviceMappings":[{"DeviceName":"/dev/xvdcz","Ebs":{"VolumeSize":22,"VolumeType":"gp2","DeleteOnTermination":true}}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Especificar hosts dedicados para traer licencias de software de proveedores externos
<a name="example-dedicated-hosts"></a>

Si especifica la tenencia de *host*, puede especificar un grupo de recursos de host y una configuración de licencias de License Manager para traer licencias de software elegibles de proveedores externos. A continuación, puede utilizar las licencias en las instancias de EC2 mediante el siguiente comando. [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"Placement":{"Tenancy":"host","HostResourceGroupArn":"arn"},"LicenseSpecifications":[{"LicenseConfigurationArn":"arn"}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Especificar una interfaz de red existente
<a name="example-existing-eni-launch-template"></a>

El siguiente [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)ejemplo configura la interfaz de red principal para usar una interfaz de red existente.

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"NetworkInterfaceId":"eni-b9a5ac93","DeleteOnTermination":false}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

## Creación de múltiples interfaces de red
<a name="example-multiple-efa-enabled-network-interfaces"></a>

El siguiente [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)ejemplo agrega una interfaz de red secundaria. La interfaz de red principal tiene un índice de dispositivo de 0 y la interfaz de red secundaria tiene un índice de dispositivo de 1. 

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"Groups":["sg-903004f88example"],"DeleteOnTermination":true},{"DeviceIndex":1,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
```

Si usa un tipo de instancia que admite varias tarjetas de red y adaptadores Elastic Fabric (EFAs), puede agregar una interfaz secundaria a una tarjeta de red secundaria y habilitar la EFA mediante el siguiente [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)comando. Para obtener más información, consulte [Agregar un EFA a una plantilla de lanzamiento](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-efa.html#efa-launch-template) en la *Guía del usuario de Amazon EC2*. 

```
aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
  --launch-template-data '{"NetworkInterfaces":[{"NetworkCardIndex":0,"DeviceIndex":0,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true},{"NetworkCardIndex":1,"DeviceIndex":1,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true}],"ImageId":"ami-09d95fab7fexample","InstanceType":"p4d.24xlarge"}'
```

**aviso**  
El tipo de instancia p4d.24xlarge incurre en costos más altos que los otros ejemplos de esta sección. Para obtener más información acerca de los precios para instancias P4d, consulte [Precios de instancias P4d de Amazon EC2](https://aws.amazon.com/ec2/instance-types/p4/).

**nota**  
Si se asocian varias interfaces de red de la misma subred a una instancia, se puede presentar un enrutamiento asimétrico, especialmente en instancias que utilizan una variante de Amazon Linux. Si necesita este tipo de configuración, debe configurar la interfaz de red secundaria dentro del sistema operativo. Para ver un ejemplo, consulta [¿Cómo puedo hacer que mi interfaz de red secundaria funcione en mi instancia EC2 de Ubuntu?](https://repost.aws/knowledge-center/ec2-ubuntu-secondary-network-interface) en el Centro de AWS conocimiento.

## Administración de las plantillas de lanzamiento
<a name="launch-templates-additional-cli-commands"></a>

 AWS CLI Incluye varios otros comandos que le ayudan a administrar sus plantillas de lanzamiento. 

**Topics**
+ [Enumeración y descripción de las plantillas de lanzamiento](#describe-launch-template-aws-cli)
+ [Crear una versión de plantilla de inicialización](#example-create-launch-template-version)
+ [Eliminar una versión de plantilla de inicialización](#example-delete-launch-template-version)
+ [Eliminación de una plantilla de inicialización](#example-delete-launch-template)

### Enumeración y descripción de las plantillas de lanzamiento
<a name="describe-launch-template-aws-cli"></a>

Puede usar dos AWS CLI comandos para obtener información sobre sus plantillas de lanzamiento: [describe-launch-templates](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-templates.html)y [describe-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html). 

El [describe-launch-templates](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-templates.html)comando le permite obtener una lista de cualquiera de las plantillas de lanzamiento que haya creado. Puede utilizar una opción para filtrar los resultados en un nombre de plantilla de lanzamiento, crear tiempo, clave de etiqueta o combinación clave-valor de etiqueta. Este comando devuelve información resumida sobre cualquiera de sus plantillas de lanzamiento, incluido el identificador de plantilla de lanzamiento, la versión más reciente y la versión predeterminada. 

En el ejemplo siguiente se proporciona un resumen de la plantilla de lanzamiento especificada.

```
aws ec2 describe-launch-templates --launch-template-names my-template-for-auto-scaling
```

A continuación, se muestra un ejemplo de respuesta.

```
{
    "LaunchTemplates": [
        {
            "LaunchTemplateId": "lt-068f72b729example",
            "LaunchTemplateName": "my-template-for-auto-scaling",
            "CreateTime": "2020-02-28T19:52:27.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
            "DefaultVersionNumber": 1,
            "LatestVersionNumber": 1
        }
    ]
}
```

Si no utiliza `--launch-template-names` para limitar la salida a una plantilla de lanzamiento, se devuelve información sobre todas las plantillas de lanzamiento.

El siguiente [describe-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html)comando proporciona información que describe las versiones de la plantilla de lanzamiento especificada.

```
aws ec2 describe-launch-template-versions --launch-template-id lt-068f72b729example
```

A continuación, se muestra un ejemplo de respuesta.

```
{
    "LaunchTemplateVersions": [
        {
            "VersionDescription": "version1",
            "LaunchTemplateId": "lt-068f72b729example",
            "LaunchTemplateName": "my-template-for-auto-scaling",
            "VersionNumber": 1,
            "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
            "LaunchTemplateData": {
                "TagSpecifications": [
                    {
                        "ResourceType": "instance",
                        "Tags": [
                            {
                                "Key": "purpose",
                                "Value": "webserver"
                            }
                        ]
                    }
                ],
                "ImageId": "ami-04d5cc9b88example",
                "InstanceType": "t2.micro",
                "NetworkInterfaces": [
                    {
                        "DeviceIndex": 0,
                        "DeleteOnTermination": true,
                        "Groups": [
                            "sg-903004f88example"
                        ],
                        "AssociatePublicIpAddress": true
                    }
                ]
            },
            "DefaultVersion": true,
            "CreateTime": "2020-02-28T19:52:27.000Z"
        }
    ]
}
```

### Crear una versión de plantilla de inicialización
<a name="example-create-launch-template-version"></a>

El siguiente [create-launch-template-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template-version.html)comando crea una nueva versión de la plantilla de lanzamiento basada en la versión 1 de la plantilla de lanzamiento y especifica un ID de AMI diferente.

```
aws ec2 create-launch-template-version --launch-template-id lt-068f72b729example --version-description version2 \
  --source-version 1 --launch-template-data "ImageId=ami-c998b6b2example"
```

Para establecer la versión predeterminada de la plantilla de lanzamiento, utilice el [modify-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-launch-template.html)comando.

### Eliminar una versión de plantilla de inicialización
<a name="example-delete-launch-template-version"></a>

El siguiente [delete-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-launch-template-versions.html)comando elimina la versión de la plantilla de lanzamiento especificada.

```
aws ec2 delete-launch-template-versions --launch-template-id lt-068f72b729example --versions 1
```

### Eliminación de una plantilla de inicialización
<a name="example-delete-launch-template"></a>

Si ya no necesita una plantilla de lanzamiento, puede eliminarla mediante el siguiente [delete-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-launch-template.html)comando. Al eliminar una plantilla de inicialización, también se eliminan todas sus versiones. 

```
aws ec2 delete-launch-template --launch-template-id lt-068f72b729example
```

## Actualización de un grupo de Auto Scaling para utilizar una plantilla de lanzamiento
<a name="update-asg-launch-template-cli"></a>

Puede usar el [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)comando para agregar una plantilla de lanzamiento a un grupo de Auto Scaling existente.

### Actualización de un grupo de Auto Scaling para utilizar la versión más reciente de una plantilla de lanzamiento
<a name="example-update-asg-launch-template-latest-version"></a>

El siguiente [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)comando actualiza el grupo de Auto Scaling especificado para usar la última versión de la plantilla de lanzamiento especificada.

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateId=lt-068f72b729example,Version='$Latest'
```

### Actualización de un grupo de Auto Scaling para utilizar una versión específica de una plantilla de lanzamiento
<a name="example-update-asg-launch-template-specific-version"></a>

El siguiente [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)comando actualiza el grupo de Auto Scaling especificado para usar una versión específica de la plantilla de lanzamiento especificada.

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='2'
```