Enviar alertas do Amazon Simple Notification Service de eventos de tarefa interrompida do Amazon ECS - Amazon Elastic Container Service

Enviar alertas do Amazon Simple Notification Service de eventos de tarefa interrompida do Amazon ECS

Configurar uma regra de evento do Amazon EventBridge que só capture eventos de tarefa em que a execução da tarefa foi interrompida porque um de seus contêineres essenciais foi encerrado. O evento só envia eventos de tarefa com uma propriedade stoppedReason específica para o tópico do Amazon SNS designado.

Pré-requisito: configurar um cluster de teste

Caso você não tenha um cluster em execução para capturar eventos, siga as etapas em Conceitos básicos do console usando contêineres de Linux no AWS Fargate para criar um. Ao final deste tutorial, você executará uma tarefa nesse cluster para testar se configurou o tópico do Amazon SNS e a regra do EventBridge corretamente.

Pré-requisito: configurar permissões para o Amazon SNS

Para permitir que o EventBridge publique em um tópico do Amazon SNS, use os comandos aws sns get-topic-attributes e aws sns set-topic-attributes.

Para obter informações sobre como adicionar a permissão, consulte Permissões do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.

Adicione as seguintes permissões:

{ "Sid": "PublishEventsToMyTopic", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns: Publish", "Resource": "arn:aws:sns:region:account-id:TaskStoppedAlert", }

Etapa 1: criar e se inscrever em um tópico do Amazon SNS

Neste tutorial, você configura um tópico do Amazon SNS para funcionar como um destino de evento para a nova regra de evento.

Para obter informações sobre como criar e assinar um tópico do Amazon SNS, consulte Conceitos básicos do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service e use a tabela a seguir para determinar quais opções selecionar.

Opção Valor

Tipo

Padrão
Nome

TaskStoppedAlert

Protocolo E-mail
Endpoint

Um endereço de email ao qual você atualmente tem acesso

Etapa 2: registrar uma regra de evento

Em seguida, você registra uma regra de evento que captura apenas eventos de tarefa parada para tarefas com contêineres parados.

Para obter informações sobre como criar um tópico do Amazon SNS e assiná-lo, consulte Criar uma regra no Amazon EventBridge no Guia do usuário do Amazon EventBridge e use a tabela a seguir para determinar quais opções selecionar.

Opção Valor

Tipo de regra

Regra com um padrão de evento

Origem do evento. Eventos da AWS ou eventos de parceiros do EventBridge
Padrão de evento

Padrão personalizado (editor JSON)

Padrão de evento
{ "source":[ "aws.ecs" ], "detail-type":[ "ECS Task State Change" ], "detail":{ "lastStatus":[ "STOPPED" ], "stoppedReason":[ "Essential container in task exited" ] } }
Target type

Serviço da AWS

Destino Tópico do SNS
Tópico

TaskStoppedAlert (O tópico que você criou na Etapa 1)

Etapa 3: testar a regra

Verifique se a regra está funcionando ao executar uma tarefa que sai pouco depois que é iniciada. Caso a regra de evento esteja configurada corretamente, você recebe uma mensagem de e-mail em alguns minutos com o texto do evento. Se você tiver uma definição de tarefa existente que possa atender aos requisitos da regra, execute uma tarefa ao usá-la. Se você não fizer isso, as etapas a seguir vão orientá-lo no registro de uma definição de tarefa Fargate e na sua execução.

  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. No painel de navegação, escolha Task definitions (Definições de tarefa).

  3. Escolha Create new task definition (Criar nova definição de tarefa), Create new task definition with JSON (Criar nova definição de tarefa com JSON).

  4. Na caixa do editor JSON, edite o arquivo JSON e copie o seguinte no editor.

    { "containerDefinitions":[ { "command":[ "sh", "-c", "sleep 5" ], "essential":true, "image":"amazonlinux:2", "name":"test-sleep" } ], "cpu":"256", "executionRoleArn":"arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "family":"fargate-task-definition", "memory":"512", "networkMode":"awsvpc", "requiresCompatibilities":[ "FARGATE" ] }
  5. Escolha Criar.

Para executar uma tarefa no console
  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. Na página Clusters, escolha o cluster que você criou nos pré-requisitos.

  3. Na guia Tasks (Tarefas), escolha Run new task (Executar nova tarefa).

  4. Em Application type (Tipo de aplicação), escolha Task (Tarefa).

  5. Em Definição de tarefa, selecione fargate-task-definition.

  6. Em Desired tasks (Tarefas desejadas), insira o número de tarefas que serão iniciadas.

  7. Escolha Criar.