

# Retirada e manutenção de tarefas para o AWS Fargate no Amazon ECS
<a name="task-maintenance"></a>

A AWS é responsável por manter a infraestrutura subjacente do AWS Fargate. A AWS determina quando uma revisão da versão da plataforma precisa ser substituída por uma nova revisão da infraestrutura. Isso é conhecido como retirada de tarefas. A AWS envia uma notificação de retirada da tarefa quando uma revisão da versão da plataforma é retirada. Atualizamos rotineiramente nossas versões da plataforma com suporte para introduzir uma revisão contendo atualizações do software de runtime do Fargate e dependências subjacentes, como o sistema operacional e o runtime do contêiner. Quando uma revisão mais recente é disponibilizada, retiramos a revisão mais antiga para garantir que todas as workloads do cliente sejam executadas na revisão mais atualizada da versão da plataforma do Fargate. Quando uma revisão é retirada, todas as tarefas em execução nessa revisão são interrompidas.

As tarefas do Amazon ECS podem ser categorizadas como tarefas de serviço ou tarefas autônomas. As tarefas de serviço são implantadas como parte de um serviço e controladas pela programação do Amazon ECS. Para obter mais informações, consulte [Serviços do Amazon ECS](ecs_services.md). As tarefas autônomas são tarefas iniciadas pela API `RunTask` do Amazon ECS, diretamente ou por um agendador externo, como tarefas programadas (que são iniciadas pelo Amazon EventBridge), AWS Batch ou AWS Step Functions. Você não precisa realizar nenhuma ação em resposta à retirada de tarefas de suas tarefas de serviço porque o programador do Amazon ECS substitui automaticamente as tarefas. 

Para tarefas autônomas, talvez seja necessário realizar um tratamento adicional em resposta à retirada da tarefa. Para obter mais informações, consulte [O Amazon ECS pode processar automaticamente as tarefas autônomas?](#task-retirement-standalone-tasks).

Para tarefas de serviço, você não precisa realizar nenhuma ação para a retirada da tarefa, a menos que queira substituí-las antes de a AWS fazê-lo. Quando o agendador do Amazon ECS interrompe as tarefas, ele usa `maximumPercent` e executa uma nova tarefa na tentativa de manter a contagem desejada do serviço. Siga as práticas recomendadas para minimizar o impacto da inativação de tarefas. O valor padrão `maximumPercent` para um serviço que usa o agendador de serviço REPLICA é 200%. Portanto, quando o AWS Fargate inicia a retirada de tarefas, o Amazon ECS primeiro agenda uma nova tarefa e espera que ela seja executada, antes de retirar uma tarefa antiga. Quando o valor `maximumPercent` é definido como 100%, o Amazon ECS interrompe a tarefa primeiro e, em seguida, a substitui.

Para a retirada autônoma da tarefa, a AWS interrompe a tarefa na data de retirada da tarefa ou após ela. O Amazon ECS não inicia uma tarefa de substituição quando uma tarefa é interrompida. Se precisar que essas tarefas continuem em execução, é necessário interromper a execução delas e iniciar uma tarefa substituta antes da hora indicada na notificação. Portanto, recomendamos que os clientes monitorem o estado das tarefas autônomas e, se necessário, implementem a lógica para substituir as tarefas interrompidas.

Quando uma tarefa é interrompida em qualquer um dos cenários, é possível executar `describe-tasks`. O `stoppedReason` na resposta é `ECS is performing maintenance on the underlying infrastructure hosting the task`.

A manutenção de tarefas se aplica quando uma revisão da nova versão da plataforma precisa ser substituída por uma nova. Se houver um problema com um host subjacente do Fargate, o Amazon ECS substitui o host sem um aviso de retirada da tarefa.

## Visão geral do aviso de retirada de tarefa
<a name="task-retirement-notice"></a>

Quando a AWS marca uma revisão da versão da plataforma como precisando ser retirada, identificamos todas as tarefas que estão sendo executadas nessa revisão da versão da plataforma em todas as regiões. 

A ilustração a seguir mostra o ciclo de vida de uma revisão da versão da plataforma Fargate, desde o lançamento de uma nova revisão até a retirada da revisão da plataforma.

![\[Diagrama mostrando o ciclo de vida de retirada de tarefas do Fargate.\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/images/fargate-task-retirement.png)


As informações a seguir fornecem detalhes.
+ Depois que uma nova revisão da versão da plataforma é lançada, todas as novas tarefas são agendadas nessa revisão.
+ As tarefas existentes que foram agendadas e executadas permanecem na revisão em que foram originalmente colocadas durante a tarefa e não são migradas para a nova revisão.
+ Novas tarefas, por exemplo, como parte de uma atualização de um serviço ou da retirada de tarefas do Fargate, são inseridas na revisão mais recente da versão da plataforma disponível no momento do lançamento.

As notificações de retirada de tarefa são enviadas por meio do Painel do AWS Health e para o endereço de e-mail registrado e incluem as seguintes informações:
+ A data de retirada da tarefa: a tarefa é interrompida nessa data ou após essa data.
+ Para tarefas autônomas, os IDs das tarefas.
+ Para tarefas de serviço, o ID do cluster em que o serviço é executado e os IDs do serviço.
+ As próximas etapas que você precisa seguir.

Normalmente, enviamos uma notificação de serviço e tarefas autônomas em cada Região da AWS. No entanto, em alguns casos, você pode receber mais de um evento para cada tipo de tarefa, por exemplo, quando há muitas tarefas a serem retiradas que ultrapassarão os limites nos mecanismos de notificação.

É possível identificar tarefas programadas para retirada das maneiras a seguir:
+ O Health Dashboard 

  As notificações AWS Health podem ser enviadas por meio do Amazon EventBridge para que um armazenamento de arquivamento, como o Amazon Simple Storage Service, execute ações automatizadas, como executar uma função do AWS Lambda, ou outros sistemas de notificação, como o Amazon Simple Notification Service. Para obter mais informações, consulte [Monitoramento de eventos do AWS Health com o Amazon EventBridge](https://docs.aws.amazon.com/health/latest/ug/cloudwatch-events-health.html). Para obter um exemplo de configuração do envio de notificações para o Amazon Chime, Slack, ou Microsoft Teams, consulte o repositório [AWS Health Aware](https://github.com/aws-samples/aws-health-aware) no GitHub.

  Veja a seguir um exemplo de evento do EventBridge.

  ```
  {
      "version": "0",
      "id": "3c268027-f43c-0171-7425-1d799EXAMPLE",
      "detail-type": "AWS Health Event",
      "source": "aws.health",
      "account": "123456789012",
      "time": "2023-08-16T23:18:51Z",
      "region": "us-east-1",
      "resources": [
          "cluster|service",
          "cluster|service"
      ],
      "detail": {
          "eventArn": "arn:aws:health:us-east-1::event/ECS/AWS_ECS_TASK_PATCHING_RETIREMENT/AWS_ECS_TASK_PATCHING_RETIREMENT_test1",
          "service": "ECS",
          "eventScopeCode": "ACCOUNT_SPECIFIC",
          "communicationId": "7988399e2e6fb0b905ddc88e0e2de1fd17e4c9fa60349577446d95a18EXAMPLE",
          "lastUpdatedTime": "Wed, 16 Aug 2023 23:18:52 GMT",
          "eventRegion": "us-east-1",
          "eventTypeCode": "AWS_ECS_TASK_PATCHING_RETIREMENT",
          "eventTypeCategory": "scheduledChange",
          "startTime": "Wed, 16 Aug 2023 23:18:51 GMT",
          "endTime": "Fri, 18 Aug 2023 23:18:51 GMT",
          "eventDescription": [
              {
                  "language": "en_US",
                  "latestDescription": "\\nA software update has been deployed to Fargate which includes CVE patches or other critical patches. No action is required on your part. All new tasks launched automatically uses the latest software version. For existing tasks, your tasks need to be restarted in order for these updates to apply. Your tasks running as part of the following ECS Services will be automatically updated beginning Wed, 16 Aug 2023 23:18:51 GMT.\\n\\nAfter Wed, 16 Aug 2023 23:18:51 GMT, the ECS scheduler will gradually replace these tasks, respecting the deployment settings for your service. Typically, services should see little to no interruption during the update and no action is required. When AWS stops tasks, AWS uses the minimum healthy percent (1) and launches a new task in an attempt to maintain the desired count for the service. By default, the minimum healthy percent of a service is 100 percent, so a new task is started first before a task is stopped. Service tasks are routinely replaced in the same way when you scale the service or deploy configuration changes or deploy task definition revisions. If you would like to control the timing of this restart you can update the service before Wed, 16 Aug 2023 23:18:51 GMT, by running the update-service command from the ECS command-line interface specifying force-new-deployment for services using Rolling update deployment type. For example:\\n\\n$ aws ecs update-service -service service_name \\\n--cluster cluster_name -force-new-deployment\\n\\nFor services using Blue/Green deployment type with AWS CodeDeploy:\\nPlease refer to create-deployment document (2) and create new deployment using same task definition revision.\\n\\nFor further details on ECS deployment types, please refer to ECS Deployment Developer Guide (1).\\nFor further details on Fargate's update process, please refer to the AWS Fargate User Guide (3).\\nIf you have any questions or concerns, please contact AWS Support (4).\\n\\n(1) https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html\\n(2) https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html\\n(3) https://docs.aws.amazon.com/AmazonECS/latest/userguide/task-maintenance.html\\n(4) https://aws.amazon.com/support\\n\\nA list of your affected resources(s) can be found in the 'Affected resources' tab in the 'Cluster/ Service' format in the AWS Health Dashboard. \\n\\n"
              }
          ],
        "affectedEntities": [
                  {
                      "entityValue": "arn:aws:ecs:eu-west-1:111222333444:task/examplecluster/00805ce1d81940b5a37398e5a2c23333"
                  },
                  {
                      "entityValue": "arn:aws:ecs:eu-west-1:111222333444:task/examplecluster/00805ce1d81940b5a37398e5a2c25555"
                  }
              }
          ]
      }
  }
  ```
+ E-mail

  Um email é enviado para o email registrado para obter o ID Conta da AWS.

Para obter informações sobre como se preparar para a retirada de tarefas, consulte [Prepare-se para a retirada de tarefas do AWS Fargate no Amazon ECS](prepare-task-retirement.md).

## Posso optar pela não retirada de tarefas?
<a name="task-retirement-opt-out"></a>

Não. Como parte do modelo de responsabilidade compartilhada da AWS, a AWS é responsável por gerenciar e manter a infraestrutura subjacente do AWS Fargate. Isso inclui a realização de atualizações periódicas da plataforma para garantir a segurança e a estabilidade. Essas atualizações são aplicadas automaticamente pela AWS e não são algo que os clientes possam optar por não aceitar. Esse é um dos principais benefícios de usar um AWS Fargate em comparação com a execução de suas workloads em instâncias do EC2, a responsabilidade pela manutenção da plataforma subjacente é assumida pela AWS. Esse modelo permite que você se concentre em suas aplicações em vez da manutenção da infraestrutura. Ao aplicar automaticamente essas atualizações da plataforma, a AWS é capaz de manter o ambiente do Fargate atualizado e seguro, sem nenhuma ação exigida de você como cliente. Isso ajuda a fornecer um ambiente em contêineres confiável e seguro para executar suas workloads no Fargate. 

## Posso receber notificações de retirada de tarefas por meio de outros serviços da AWS?
<a name="task-retirement-event"></a>

A AWS envia uma notificação de retirada da tarefa para o Health Dashboard e para o principal contato de e-mail na Conta da AWS. O Health Dashboard fornece várias integrações com outros serviços da AWS, incluindo o EventBridge. Você pode usar o EventBridge para automatizar a visibilidade dos avisos (por exemplo, encaminhar a mensagem para uma ferramenta de ChatOps). Para obter mais informações, consulte [Solution overview: Capturing task retirement notifications](https://aws.amazon.com/blogs/containers/improving-operational-visibility-with-aws-fargate-task-retirement-notifications/).

## Posso alterar a retirada de uma tarefa depois de programada?
<a name="task-retirement-change"></a>

 Não. O cronograma é baseado no tempo de espera de retirada da tarefa, que tem um padrão de sete dias. Se precisar de mais tempo, você pode configurar o período de espera para 14 dias. Para obter mais informações, consulte [Etapa 2: capturar as notificações de retiradas de tarefas para alertar as equipes e tomar medidas](prepare-task-retirement.md#prepare-task-retirement-capture-task-events). 

A partir de 18/12/2025, o Amazon ECS permite que você configure [janelas de eventos do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) para suas tarefas do Fargate. Se você precisar de um controle preciso sobre o momento exato das retiradas de tarefas, por exemplo, programando-as nos finais de semana para evitar interrupções durante o horário comercial, você pode configurar janelas de eventos do Amazon EC2 para suas tarefas, serviços ou clusters. Consulte [Etapa 1: defina o tempo de espera da tarefa ou use as janelas de eventos do Amazon EC2.](prepare-task-retirement.md#prepare-task-retirement-set-time). Observe que a alteração nessa configuração se aplica às retiradas que serão programadas no futuro. As retiradas programadas atualmente não são afetadas. Além disso, quando você configura uma janela de eventos do Amazon EC2 para suas tarefas do Fargate, ela tem precedência sobre a configuração do tempo de espera de desativação da tarefa. Em caso de dúvidas, entre em contato com o Suporte.

## Como o Amazon ECS processa tarefas que fazem parte de um serviço?
<a name="task-retirement-service-works"></a>

Para tarefas de serviço, você não precisa realizar nenhuma ação em resposta à retirada de tarefas, a menos que queira substituí-las antes de a AWS fazê-lo. Quando o agendador do Amazon ECS interrompe as tarefas, ele usa a porcentagem mínima de integridade e executa uma nova tarefa na tentativa de manter a contagem desejada do serviço. Para minimizar o impacto da retirada de tarefas do Fargate, você deve seguir as práticas recomendadas do Amazon ECS ao implantar workloads. Por exemplo, ao implantar uma aplicação sem estado como um serviço do Amazon ECS, como um servidor Web ou de API, os clientes devem implantar várias réplicas de tarefas e defini-las como minimumHealthyPercent a 100%. Por padrão, a porcentagem mínima de integridade de um serviço é 100%. Portanto, quando o Fargate inicia a retirada de tarefas, o Amazon ECS primeiro agenda uma nova tarefa e espera que ela seja executada, antes de retirar uma tarefa antiga. As tarefas de serviço são substituídas rotineiramente como parte da retirada de tarefas da mesma forma quando você escala o serviço, implanta alterações de configuração ou implanta revisões de definição de tarefas. Para se preparar para o processo de retirada de tarefas, consulte [Prepare-se para a retirada de tarefas do AWS Fargate no Amazon ECS](prepare-task-retirement.md).

## O Amazon ECS pode processar automaticamente as tarefas autônomas?
<a name="task-retirement-standalone-tasks"></a>

 Não. A AWS não consegue criar uma tarefa substituta para tarefas autônomas iniciadas por `RunTask`, tarefas programadas (por exemplo, por meio do Agendador do EventBridge), AWS Batch ou AWS Step Functions. O Amazon ECS gerencia somente tarefas que fazem parte de um serviço.

## Solução de problemas de disponibilidade do serviço durante a descontinuação da tarefa
<a name="task-retirement-service-availability"></a>

Se o Amazon ECS não puder iniciar uma tarefa de substituição durante a descontinuação da tarefa, a disponibilidade do seu serviço poderá ser afetada. Isso pode ocorrer devido à configuração incorreta do cliente, como:
+ Perfis do IAM ausentes ou configurados incorretamente
+ Capacidade insuficiente nas sub-redes de destino
+ Configurações incorretas do grupo de segurança
+ Erros na definição das tarefas

Quando o Amazon ECS não consegue lançar tarefas de substituição, as tarefas descontinuadas são interrompidas sem substituição, reduzindo a capacidade disponível do seu serviço e potencialmente causando sua interrupção. Monitore a contagem de tarefas do seu serviço e as métricas do Amazon CloudWatch para garantir que as tarefas de substituição sejam lançadas com sucesso durante os eventos de descontinuação.

# Prepare-se para a retirada de tarefas do AWS Fargate no Amazon ECS
<a name="prepare-task-retirement"></a>

Para se preparar para a retirada da tarefa, execute as seguintes operações:

1. Defina o período de espera para retirada da tarefa ou use as janelas de eventos do Amazon EC2.

1. Capture notificações de retirada de tarefas para notificar os membros da equipe.

1. Você pode garantir que todas as tarefas dos seus serviços sejam executadas na revisão da versão mais recente da plataforma, ao atualizar o serviço com a opção de implantação forçada. Esta etapa é opcional.

## Etapa 1: defina o tempo de espera da tarefa ou use as janelas de eventos do Amazon EC2.
<a name="prepare-task-retirement-set-time"></a>

 Você tem duas opções de configuração de conta para definir a hora em que o Fargate inicia as retiradas de tarefas: `fargateTaskRetirementWaitPeriod` e `fargateEventWindows`.

**Usar a configuração da conta fargateTaskRetirementWaitPeriod**

É possível configurar a hora em que o Fargate inicia a retirada da tarefa. O período de espera padrão é de 7 dias. Para workloads que exijam a aplicação imediata das atualizações, escolha a configuração imediata (`0`). Se precisar de mais tempo, configure a opção de `7` ou `14` dias. 

Recomendamos que você escolha um período de espera mais curto para receber as revisões das versões da plataforma mais recentes mais cedo.

Configure o período de espera executando `put-account-setting-default` ou `put-account-setting` como usuário-raiz ou um usuário administrativo. Use a opção `fargateTaskRetirementWaitPeriod` para o `name` e a opção `value` definida como um dos valores a seguir:
+ `0`: A AWS envia a notificação e imediatamente começa a retirar as tarefas afetadas.
+ `7`: A AWS envia a notificação e aguarda 7 dias corridos antes de começar a retirar as tarefas afetadas. Esse é o padrão.
+ `14`: A AWS envia a notificação e aguarda 14 dias corridos antes de começar a retirar as tarefas afetadas.

Para obter mais informações, consulte [put-account-setting-default](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting-default.html) e [put-account-setting](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting.html) na *Referência de API do Amazon Elastic Container Service*.

**Usar a configuração da conta fargateEventWindows**

A partir de 18/12/2025, o Amazon ECS permite que você configure [janelas de eventos do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) para suas tarefas do Fargate. Se você precisar de um controle preciso sobre o momento exato das retiradas de tarefas, por exemplo, programando-as nos finais de semana para evitar interrupções durante o horário comercial, você pode configurar janelas de eventos do Amazon EC2 para suas tarefas, serviços ou clusters.

Quando você usa janelas de eventos, o Fargate garante que suas tarefas sejam executadas por pelo menos 3 dias antes de serem retiradas na próxima janela disponível, a menos que sejam interrompidas por ações iniciadas pelo usuário ou eventos críticos de integridade, como degradação do hardware subjacente.

Defina a configuração da conta `fargateEventWindows` como `enabled`. Você pode usar uma das seguintes APIs: `put-account-setting-default` ou `put-account-setting` como usuário-raiz ou usuário administrativo. 

 Cada janela de evento do Amazon EC2 deve estar aberta por pelo menos 4 horas por semana e cada intervalo de tempo deve ter pelo menos 2 horas de duração. Para grandes clusters e serviços, recomendamos configurar janelas de eventos com durações longas (8 horas ou mais) ou intervalos de tempo mais frequentes que ocorram pelo menos uma vez a cada 3 dias. Consulte mais detalhes sobre as janelas de eventos do Amazon EC2 no [guia do usuário](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html#event-windows-considerations). O AWS Fargate garante que suas tarefas sejam executadas por pelo menos 3 dias antes de serem retiradas, a menos que sejam interrompidas por ações iniciadas pelo usuário ou eventos críticos de integridade, como a degradação do hardware subjacente.

**Importante**  
A substituição de tarefas na janela do evento é a melhor opção. Se você notar que as tarefas estão sendo retiradas fora das janelas do evento, considere expandir a duração (8 horas ou mais) ou aumentar a frequência (pelo menos uma vez a cada 3 dias).

Para aplicar janelas de eventos do Amazon EC2 às retiradas de suas tarefas do Fargate:
+ Defina a configuração da conta `fargateEventWindows` como `enabled`. Você pode usar uma das seguintes APIs: `put-account-setting-default` ou `put-account-setting` como usuário-raiz ou usuário administrativo. Observe que essa é uma habilitação única para o uso do atributo de janelas de eventos do Amazon EC2 para suas tarefas do Fargate.
+ Crie uma janela de eventos do Amazon EC2 por meio do console da AWS ou da AWS CLI. Para criar uma janela de eventos usando a CLI, use a API `create-instance-event-window` do EC2 com intervalos de tempo ou expressões cron. Anote o valor do `InstanceEventWindowId` na resposta.

  ```
  aws ec2 create-instance-event-window \
                      --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \
                      --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \
                      --name myEventWindowName
  ```

  Como alternativa, você pode usar expressões cron ao criar janelas de eventos do EC2.

  ```
  aws ec2 create-instance-event-window \
                      --cron-expression "* 21-23 * * 2,3" \
                      --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \
                      --name myEventWindowName
  ```
+ Em seguida, você pode associar a janela do evento a serviços específicos, clusters ou a todas as tarefas em sua conta usando a API `associate-instance-event-window` do EC2.
  + Para tarefas de serviço do ECS

    ```
    aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=aws:ecs:serviceArn,Value=your-service-arn}]"
    ```
  + Para cluster do ECS

    ```
    aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=aws:ecs:clusterArn,Value=your-cluster-arn}]"
    ```
  + Para associar uma janela de eventos a todas as tarefas na conta

    ```
    aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=aws:ecs:fargateTask,Value=true}]"
    ```

Você pode usar mais de um par chave-valor para associar uma janela de eventos a vários serviços ou clusters.

O Fargate escolherá a janela do eventos para cada tarefa na seguinte ordem:
+ Se houver uma janela de eventos associada ao serviço da tarefa, ela será usada. Isso não se aplica a tarefas autônomas ou não gerenciadas.
+ Se houver uma janela de eventos associada ao cluster da tarefa, ela será usada.
+ Se houver uma janela de evento definida para todas as tarefas do Fargate, ela será usada.
+ A configuração `fargateTaskRetirementWaitPeriod` será usada se nenhuma das janelas de eventos corresponder à tarefa.

**Configurar janelas de eventos para manutenção de tarefas do Fargate**

Considere um caso em que você está executando vários serviços do ECS no Fargate com diferentes requisitos de disponibilidade. Você quer um controle preciso sobre as retiradas de tarefas. Você pode configurar várias janelas de eventos da seguinte forma: 
+ **Manutenção padrão para todas as tarefas do Fargate**: crie uma janela de eventos para manutenção de rotina fora do horário de pico (diariamente da 0h às 4h) e associe-a a todas as tarefas do Fargate usando a tag ` aws:ecs:fargateTask`.
+ **Manutenção somente no fim de semana para o cluster de desenvolvimento**: para um cluster de desenvolvimento com serviços que podem tolerar interrupções nos finais de semana, crie uma janela de 24 horas no fim de semana (sábado e domingo, o dia todo) e associe-a ao cluster usando a tag `aws:ecs:clusterArn` com o ARN do seu cluster.
+ **Período restrito para serviços essenciais**: para um serviço de processamento de pagamentos de missão crítica que exige alto tempo de atividade durante a semana, restrinja a manutenção às primeiras horas da manhã do fim de semana (sábado e domingo, da 0h às 4h) e associe-a ao serviço específico usando a tag `aws:ecs:serviceArn` com o ARN do serviço.

Com essa configuração, o serviço de pagamento usa sua janela específica somente para fins de semana, os serviços e tarefas do cluster de desenvolvimento usam a janela de 24 horas do fim de semana e todas as demais tarefas do Fargate usam a janela de manutenção diária padrão.

Para obter mais informações, consulte [put-account-setting-default](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting-default.html) e [put-account-setting](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting.html) na *Referência de API do Amazon Elastic Container Service*.

## Etapa 2: capturar as notificações de retiradas de tarefas para alertar as equipes e tomar medidas
<a name="prepare-task-retirement-capture-task-events"></a>

Quando houver um retirada de tarefa próxima, a AWS envia uma notificação de retirada de tarefa para o Painel do AWS Health e para o contato de e-mail principal na Conta da AWS. O Painel do AWS Health fornece várias integrações com outros serviços da AWS, incluindo o Amazon EventBridge. É possível usar o EventBridge para criar automações a partir de uma notificação de retirada de tarefa, como aumentar a visibilidade da próxima retirada, ao encaminhar a mensagem para uma ferramenta ChatOps. AWS Health O Aware é um recurso que mostra o poder do Painel do AWS Health e como as notificações podem ser distribuídas por toda a organização. Você pode encaminhar uma notificação de retirada de tarefa para um aplicativo de bate-papo, como o Slack. 

A ilustração a seguir mostra a visão geral da solução.

![\[Diagrama mostrando a solução Fargate para capturar avisos de retirada de tarefas do Fargate.\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/images/fargate-task-retirement-solution.png)


As informações a seguir fornecem detalhes.
+ O Fargate envia a notificação de retirada da tarefa para o Painel do AWS Health.
+ O Painel do AWS Health envia e-mail para o contato de e-mail principal na Conta da AWS e notifica o EventBridge. 
+ O EventBridge tem uma regra que captura a notificação de retirada.

  A regra de busca de eventos com o tipo de detalhe do evento: `"AWS Health Event" and the Event Detail Type Code: "AWS_ECS_TASK_PATCHING_RETIREMENT"`
+ A regra aciona uma função do Lambda que encaminha as informações para o Slack usando um webhook de entrada do Slack. Para obter mais informações, consulte [Webhooks de entrada](https://slack.com/marketplace/A0F7XDUAZ-incoming-webhooks).

Para ver um exemplo de código, consulte [Capturing AWS Fargate Task Retirement Notifications](https://github.com/aws-samples/capturing-aws-fargate-task-retirement-notifications/tree/main) no Github.

## Etapa 3: controlar a retirada de tarefas
<a name="prepare-task-retirement-change-time"></a>

Você não pode controlar o momento exato da retirada de uma tarefa, no entanto, você pode definir um tempo de espera. Se quiser controlar a retirada de tarefas de acordo com sua própria programação, é possível capturar o aviso de retirada da tarefa para primeiro entender a data de retirada da tarefa. Você pode então reimplantar seu serviço para iniciar retiradas de tarefas e, da mesma forma, substituir quaisquer tarefas autônomas. Para serviços que usam implantação contínua, você atualiza o serviço usando `update-service` com a opção `force-deployment` antes do horário de início da retirada.

O exemplo `update-service` a seguir usa a opção `force-deployment`.

```
aws ecs update-service —-service service_name \ 
    --cluster cluster_name \
     --force-new-deployment
```

Em serviços que usam a implantação azul/verde, você precisa criar uma implantação no AWS CodeDeploy. Para obter informações sobre como criar a implantação, consulte [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) na *Referência da AWS Command Line Interface*.