

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.

# Incorporación de los enlaces de ciclo de vida en su grupo de escalado automático
<a name="adding-lifecycle-hooks"></a>

Puede agregar enlaces del ciclo de vida al grupo de Auto Scaling para poner las instancias de Auto Scaling en estado de espera y llevar a cabo acciones personalizadas en ellas. Las acciones personalizadas se realizan a medida que se lanzan las instancias o antes de que finalicen. Las instancias permanecen en estado de espera hasta que se completa la acción del ciclo de vida o finaliza el periodo de espera.

Después de crear un grupo de Auto Scaling a partir de Consola de administración de AWS, puede agregarle uno o más enlaces de ciclo de vida, hasta un total de 50 enlaces de ciclo de vida. También puede usar el AWS CLI CloudFormation, o un SDK para agregar enlaces de ciclo de vida a un grupo de Auto Scaling a medida que lo crea.

De forma predeterminada, cuando agrega un enlace de ciclo de vida en la consola, Amazon EC2 Auto Scaling envía notificaciones de eventos del ciclo de vida a Amazon EventBridge. Se recomienda utilizar un script de datos de usuario EventBridge o utilizar un script de datos de usuario. Para crear un enlace de ciclo de vida que envíe notificaciones directamente a Amazon SNS AWS Lambda o Amazon SQS, puede utilizar [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html)el comando, como se muestra en los ejemplos de este tema.

**Topics**
+ [Adición de enlaces de ciclo de vida (consola)](#adding-lifecycle-hooks-console)
+ [Adición de enlaces de ciclo de vida (AWS CLI)](#adding-lifecycle-hooks-aws-cli)

## Adición de enlaces de ciclo de vida (consola)
<a name="adding-lifecycle-hooks-console"></a>

Siga estos pasos para agregar enlaces de ciclo de vida a un grupo de escalado automático. Para agregar enlaces de ciclo de vida a fin de escalar horizontalmente (lanzar instancias) y reducir horizontalmente (terminar instancias o regresarlas a un grupo en caliente), debe crear dos enlaces independientes. 

Antes de comenzar, confirme que ha configurado una acción personalizada, según sea necesario, como se detalla en [Preparación para agregar un enlace de ciclo de vida a un grupo de Auto Scaling](prepare-for-lifecycle-notifications.md).

**Agregación de un enlace de ciclo de vida para escalar horizontalmente**

1. Abra la consola Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)y seleccione **Auto Scaling Groups** en el panel de navegación.

1. Seleccione la casilla situada junto al grupo de escalado automático. Se abre un panel dividido en la parte inferior de la página. 

1. En la pestaña **Instance management (Administración de instancias)**, en **Lifecycle hooks (Enlaces de ciclo de vida)**, elija **Create lifecycle hook (Crear enlace de ciclo de vida)**.

1. Para definir un enlace de ciclo de vida para escalar horizontalmente (lanzamiento de instancias), haga lo siguiente:

   1. En **Lifecycle hook name (Nombre del enlace de ciclo de vida)**, especifique un nombre para el enlace de ciclo de vida.

   1. En **Lifecycle transition (Transición del ciclo de vida)**, elija **Instance launch (Lanzamiento de instancia)**.

   1. En **Tiempo de espera del latido**, especifique la cantidad de tiempo en segundos que las instancias pueden permanecer en estado de espera al escalar horizontalmente antes de que se agote el tiempo de espera del enlace. El rango va de `30` a `7200` segundos. Establecer un periodo de tiempo de espera prolongado proporciona más tiempo para que se complete la acción personalizada. A continuación, si finaliza antes de que finalice el período de espera, envíe el [complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html)comando para permitir que la instancia pase al siguiente estado. 

   1. En **Default result** (Resultado predeterminado), especifique la acción que se debe realizar cuando termine el tiempo de espera del enlace de ciclo de vida o cuando se produzca un error inesperado. Puede seleccionar **CONTINUAR** o **ABANDONAR**.
      + Si elige **CONTINUAR**, el grupo de escalado automático puede continuar con cualquier otro enlace de ciclo de vida y luego poner la instancia en servicio.
      + Si elige **ABANDONAR**, el grupo de escalado automático detiene las acciones restantes y termina las instancias de inmediato.

   1. (Opcional) En **Metadatos de notificación**, especifique cualquier otra información que desee incluir cuando Amazon EC2 Auto Scaling envíe un mensaje al destino de notificación. 

1. Seleccione **Crear**.

**Agregación de un enlace de ciclo de vida para reducir horizontalmente**

1. Elija **Crear enlace de ciclo de vida** para continuar donde lo dejó después de crear un enlace de ciclo de vida para escalar horizontalmente.

1. Para definir un enlace de ciclo de vida para reducir horizontalmente (instancias que finalizan o regresan a un grupo de calentamiento), haga lo siguiente:

   1. En **Lifecycle hook name (Nombre del enlace de ciclo de vida)**, especifique un nombre para el enlace de ciclo de vida.

   1. En **Lifecycle transition (Transición del ciclo de vida)**, elija **Instance terminate (Terminación de instancia)**. 

   1. En **Tiempo de espera del latido**, especifique la cantidad de tiempo en segundos que las instancias pueden permanecer en estado de espera al escalar horizontalmente antes de que se agote el tiempo de espera del enlace. Recomendamos un período de espera breve, de `30` `120` unos segundos, en función del tiempo que necesite para realizar cualquier tarea final, como extraer los registros de EC2. CloudWatch

   1. En **Default result** (Resultado predeterminado), especifique la acción que el grupo de escalado automático va a realizar cuando transcurra el tiempo de espera o si se produce un error inesperado. Tanto **ABANDON** (Abandonar) como **CONTINUE** (Continuar) permiten que la instancia se termine. 
      + Si elige **CONTINUE** (Continuar), el grupo de escalado automático puede continuar con todas las acciones restantes, como otros enlaces de ciclo de vida, antes de la terminación. 
      + Si elige **ABANDONAR**, el grupo de escalado automático termina la instancia de inmediato. 

   1. (Opcional) En **Metadatos de notificación**, especifique cualquier otra información que desee incluir cuando Amazon EC2 Auto Scaling envíe un mensaje al destino de notificación.

1. Seleccione **Crear**.

## Adición de enlaces de ciclo de vida (AWS CLI)
<a name="adding-lifecycle-hooks-aws-cli"></a>

Puede crear y actualizar enlaces de ciclo de vida utilizando el comando [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html).

Para realizar una acción de escalado ascendente, utilice el siguiente comando.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-launch-hook  \
  --auto-scaling-group-name my-asg \
  --lifecycle-transition autoscaling:EC2_INSTANCE_LAUNCHING
```

Para realizar una acción de reducción horizontal, utilice el siguiente comando.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook  \
  --auto-scaling-group-name my-asg \
  --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING
```

Para recibir notificaciones mediante Amazon SNS o Amazon SQS, agregue las opciones `--notification-target-arn` y `--role-arn`. Para recibir notificaciones mediante AWS Lambda, añada el. `--notification-target-arn`

En el siguiente ejemplo, se crea un enlace de ciclo de vida que especifica un tema de SNS denominado `my-sns-topic` como destino de notificación.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook  \
  --auto-scaling-group-name my-asg \
  --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING \
  --notification-target-arn arn:aws:sns:region:123456789012:my-sns-topic \
  --role-arn arn:aws:iam::123456789012:role/my-notification-role
```

El tema recibe una notificación de prueba con el siguiente par de clave-valor.

```
"Event": "autoscaling:TEST_NOTIFICATION"
```

De forma predeterminada, el [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html)comando crea un enlace de ciclo de vida con un tiempo de espera de `3600` segundos (una hora). 

Para cambiar el tiempo de espera de latido de un enlace de ciclo de vida existente, agregue la opción `--heartbeat-timeout`, como se muestra en el siguiente ejemplo.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \
  --auto-scaling-group-name my-asg --heartbeat-timeout 120
```

Si una instancia ya está en estado de espera, puedes evitar que se agote el tiempo de espera del enlace del ciclo de vida grabando un latido mediante el comando [record-lifecycle-action-heartbeat](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/record-lifecycle-action-heartbeat.html)CLI. De esta forma, se incrementa el tiempo de espera en el valor especificado cuando creó el enlace de ciclo de vida. Si terminas antes de que finalice el período de espera, puedes enviar el comando [complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html)CLI para permitir que la instancia pase al siguiente estado. Para obtener más información y ejemplos, consulta [Cómo completar una acción del ciclo de vida en un grupo de escalado automático](completing-lifecycle-hooks.md).