Prepare-se para a retirada de tarefas do AWS Fargate no Amazon ECS
Para se preparar para a retirada da tarefa, execute as seguintes operações:
-
Defina o tempo de espera de retirada da tarefa.
-
Capture notificações de retirada de tarefas para notificar os membros da equipe.
-
Você não pode controlar o momento exato da retirada de uma tarefa, no entanto, você pode controlar a retirada de tarefas atualizando o serviço com a opção de implantação forçada.
Etapa 1: configurar o tempo de espera da tarefa
É possível configurar a hora em que o Fargate inicia a retirada da tarefa. Para workloads que exijam a aplicação imediata das atualizações, escolha a configuração imediata (0
). Quando precisar de mais controle, por exemplo, quando uma tarefa só puder ser interrompida durante uma determinada janela, configure a opção de 7 dias (7
) ou 14 dias (14
).
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. -
14
: A AWS envia a notificação e aguarda 14 dias corridos antes de começar a retirar as tarefas afetadas.
O padrão são 7 dias.
Para obter mais informações, consulte put-account-setting-default e put-account-setting 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
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.

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
.
Para ver um exemplo de código, consulte Capturing AWS Fargate Task Retirement Notifications
Etapa 3: controlar a retirada de tarefas
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
\ --clustercluster_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 na Referência da AWS Command Line Interface.