

# Enlaces de ciclo de vida para las implementaciones de servicios de Amazon ECS
<a name="deployment-lifecycle-hooks"></a>

Cuando se inicia una implementación, progresa a través de las etapas del ciclo de vida. Cada etapa puede estar en un estado como `IN_PROGRESS` o `SUCCEEDED`. Los enlaces de ciclo de vida se pueden configurar en etapas específicas para ejecutar lógica personalizada o introducir puntos de decisión antes de que avance la implementación. Amazon ECS admite dos tipos de enlaces de ciclo de vida:

Enlaces de Lambda  
Amazon ECS invoca una función de Lambda en etapas específicas de una implementación. La función incluye la lógica personalizada y debe devolver un objeto JSON con un `hookStatus` de `SUCCEEDED`, `FAILED` o `IN_PROGRESS` para indicar a Amazon ECS cómo proceder. Estos enlaces se pueden usar para ejecutar pruebas de validación, aplicar políticas de gobernanza o implementar pasos de aprobación personalizados antes de que avance la implementación. Para obtener más información, consulte [Enlaces de Lambda para implementaciones de servicios de Amazon ECS](lambda-lifecycle-hooks.md).

Enlaces de pausa  
Amazon ECS pausa la implementación en una etapa configurada del ciclo de vida y espera a que se llame a la API `ContinueServiceDeployment` para continuar o revertirla. Durante la pausa, se pueden ejecutar flujos de trabajo propios de forma externa, como aprobaciones manuales, pruebas de integración con herramientas existentes, comprobaciones de preparación operativa o pasos de canalización de CI/CD. Para obtener más información, consulte [Enlaces de pausa para implementaciones de servicios de Amazon ECS](pause-lifecycle-hooks.md).

Se pueden configurar enlaces de Lambda y enlaces de pausa en la misma etapa del ciclo de vida. Ambos enlaces se deben completar antes de que la implementación avance a la siguiente etapa.

## Detalles de los enlaces de ciclo de vida
<a name="lifecycle-hook-details-overview"></a>

Cuando hay enlaces activos durante una implementación, su estado se puede consultar mediante una llamada a `DescribeServiceDeployments`. La respuesta incluye una matriz `lifecycleHookDetails` con los siguientes campos para cada enlace activo:


| Campo | Descripción | 
| --- | --- | 
| hookId | Identificador único de esta ejecución del enlace. Este valor se usa al llamar a ContinueServiceDeployment para los enlaces de pausa. | 
| targetType | Tipo de enlace: AWS\_LAMBDA o PAUSE. | 
| targetArn | El ARN del destino del enlace. En los enlaces de Lambda, corresponde al ARN de la función de Lambda. En los enlaces de pausa, este campo no se establece. | 
| status | Estado actual del enlace: AWAITING\_ACTION, IN\_PROGRESS, SUCCEEDED, FAILED o TIMED\_OUT. | 
| expiresAt | Fecha y hora en que caduca el enlace. (Ejemplo: 2026-05-06T12:06:49-07:00) | 
| timeoutAction | La acción que Amazon ECS realiza cuando el enlace alcanza el tiempo de espera: ROLLBACK o CONTINUE. | 

## Categorías de etapas del ciclo de vida
<a name="lifecycle-stage-categories"></a>

Las etapas del ciclo de vida se dividen en dos categorías:

1. **Etapas de invocación única**: Amazon ECS invoca estas etapas una sola vez durante una implementación de servicio.
   + `RECONCILE_SERVICE`
   + `PRE_SCALE_UP`
   + `POST_SCALE_UP`
   + `TEST_TRAFFIC_SHIFT`
   + `POST_TEST_TRAFFIC_SHIFT`
   + `POST_PRODUCTION_TRAFFIC_SHIFT`

1. **Etapas de invocación recurrente**: Amazon ECS puede invocar estas etapas varias veces durante una implementación de servicio. En las implementaciones lineales y canario, estas etapas se invocan en cada paso de cambio de tráfico:
   + `PRE_PRODUCTION_TRAFFIC_SHIFT`
   + `PRODUCTION_TRAFFIC_SHIFT`

**nota**  
Los enlaces de pausa no se pueden configurar en `TEST_TRAFFIC_SHIFT` ni `PRODUCTION_TRAFFIC_SHIFT` porque estas etapas también se invocan durante la reversión. Pausar durante una reversión requeriría una llamada adicional a `ContinueServiceDeployment` para completar la reversión.

## Etapas compatibles por tipo de enlace
<a name="lifecycle-hooks-supported-stages"></a>


| Etapa del ciclo de vida | Enlaces de Lambda | Enlaces de pausa | 
| --- | --- | --- | 
| RECONCILE\_SERVICE | Sí | Sí | 
| PRE\_SCALE\_UP | Sí | Sí | 
| POST\_SCALE\_UP | Sí | Sí | 
| TEST\_TRAFFIC\_SHIFT | Sí | No | 
| POST\_TEST\_TRAFFIC\_SHIFT | Sí | Sí | 
| PRE\_PRODUCTION\_TRAFFIC\_SHIFT | Sí | Sí | 
| PRODUCTION\_TRAFFIC\_SHIFT | Sí | No | 
| POST\_PRODUCTION\_TRAFFIC\_SHIFT | Sí | Sí | 