Enlaces de ciclo de vida para las implementaciones de servicios de Amazon ECS
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
hookStatusdeSUCCEEDED,FAILEDoIN_PROGRESSpara 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. - 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
ContinueServiceDeploymentpara 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.
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
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
Las etapas del ciclo de vida se dividen en dos categorías:
-
Etapas de invocación única: Amazon ECS invoca estas etapas una sola vez durante una implementación de servicio.
RECONCILE_SERVICEPRE_SCALE_UPPOST_SCALE_UPTEST_TRAFFIC_SHIFTPOST_TEST_TRAFFIC_SHIFTPOST_PRODUCTION_TRAFFIC_SHIFT
-
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_SHIFTPRODUCTION_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
| 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í |