

# Ganchos do ciclo de vida para implantações de serviços do Amazon ECS
<a name="deployment-lifecycle-hooks"></a>

Quando uma implantação é iniciada, ela progride por estágios do ciclo de vida. Cada estágio pode estar em um estado como `IN_PROGRESS` ou `SUCCEEDED`. Você pode configurar ganchos do ciclo de vida em estágios específicos para executar lógica personalizada ou introduzir pontos de decisão antes que a implantação continue. O Amazon ECS é compatível com dois tipos de ganchos do ciclo de vida:

Ganchos do Lambda  
O Amazon ECS invoca uma função do Lambda em estágios específicos de uma implantação. Sua função contém sua lógica personalizada e precisa retornar um objeto JSON contendo um `hookStatus` de `SUCCEEDED`, `FAILED` ou `IN_PROGRESS` para informar ao Amazon ECS como proceder. É possível usar esses ganchos para executar testes de validação, aplicar políticas de governança ou implementar etapas personalizadas de aprovação antes que a implantação prossiga. Para obter mais informações, consulte [Ganchos do Lambda para implantações de serviços do Amazon ECS](lambda-lifecycle-hooks.md).

Ganchos de pausa  
O Amazon ECS pausa a implantação em um estágio configurado do ciclo de vida e espera que você chame a API `ContinueServiceDeployment` para continuar ou reverter. Durante o estado de pausa, você pode executar seus próprios fluxos de trabalho externamente, como aprovações manuais, testes de integração com ferramentas existentes, verificações de prontidão operacional ou etapas do pipeline de CI/CD. Para obter mais informações, consulte [Ganchos de pausa para implantações de serviços do Amazon ECS](pause-lifecycle-hooks.md).

Você pode configurar ganchos do Lambda e ganchos de pausa no mesmo estágio do ciclo de vida. Ambos os ganchos precisam ser concluídos antes que a implantação prossiga para o próximo estágio.

## Detalhes do gancho do ciclo de vida
<a name="lifecycle-hook-details-overview"></a>

Quando os ganchos estão ativos durante uma implantação, é possível visualizar o status deles chamando `DescribeServiceDeployments`. A resposta inclui uma matriz `lifecycleHookDetails` com os seguintes campos para cada gancho ativo:


| Campo | Descrição | 
| --- | --- | 
| hookId | O identificador exclusivo para esta execução de gancho. Use esse valor ao chamar ContinueServiceDeployment para ganchos de pausa. | 
| targetType | O tipo de gancho: AWS\_LAMBDA ou PAUSE. | 
| targetArn | O ARN do destino do gancho. Para ganchos do Lambda, trata-se do ARN da função do Lambda. Para ganchos de pausa, esse campo não está definido. | 
| status | O status atual do gancho: AWAITING\_ACTION, IN\_PROGRESS, SUCCEEDED, FAILED ou TIMED\_OUT. | 
| expiresAt | A data e hora de expiração do gancho. (Exemplo: 2026-05-06T12:06:49-07:00) | 
| timeoutAction | A ação que o Amazon ECS executa quando o gancho atinge o tempo limite: ROLLBACK ou CONTINUE. | 

## Categorias de estágio do ciclo de vida
<a name="lifecycle-stage-categories"></a>

Os estágios do ciclo de vida se encaixam em duas categorias:

1. **Estágios de invocação única**: o Amazon ECS invoca esses estágios apenas uma vez durante a implantação de um serviço:
   + `RECONCILE_SERVICE`
   + `PRE_SCALE_UP`
   + `POST_SCALE_UP`
   + `TEST_TRAFFIC_SHIFT`
   + `POST_TEST_TRAFFIC_SHIFT`
   + `POST_PRODUCTION_TRAFFIC_SHIFT`

1. **Estágios de invocação recorrente**: o Amazon ECS pode invocar esses estágios várias vezes durante a implantação de um serviço. Para implantações lineares e de canário, esses estágios são invocados em cada etapa de mudança de tráfego:
   + `PRE_PRODUCTION_TRAFFIC_SHIFT`
   + `PRODUCTION_TRAFFIC_SHIFT`

**nota**  
Os ganchos de pausa não podem ser configurados em `TEST_TRAFFIC_SHIFT` ou `PRODUCTION_TRAFFIC_SHIFT` porque esses estágios também são invocados durante a reversão. Pausar durante uma reversão exigiria uma chamada adicional de `ContinueServiceDeployment` para concluir a reversão.

## Estágios suportados por tipo de gancho
<a name="lifecycle-hooks-supported-stages"></a>


| Estágio do ciclo de vida | Ganchos do Lambda | Ganchos de pausa | 
| --- | --- | --- | 
| RECONCILE\_SERVICE | Sim | Sim | 
| PRE\_SCALE\_UP | Sim | Sim | 
| POST\_SCALE\_UP | Sim | Sim | 
| TEST\_TRAFFIC\_SHIFT | Sim | Não | 
| POST\_TEST\_TRAFFIC\_SHIFT | Sim | Sim | 
| PRE\_PRODUCTION\_TRAFFIC\_SHIFT | Sim | Sim | 
| PRODUCTION\_TRAFFIC\_SHIFT | Sim | Não | 
| POST\_PRODUCTION\_TRAFFIC\_SHIFT | Sim | Sim | 