

# Enviar alertas do Amazon Simple Notification Service de eventos de tarefa interrompida do Amazon ECS
<a name="ecs_cwet2"></a>

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
<a name="cwet2_step_1"></a>

 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started-fargate.html#get-started-fargate-cluster) 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
<a name="cwet2_step_1a"></a>

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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html#eb-sns-permissions) 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
<a name="cwet2_step_2"></a>

 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](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#step-create-queue) 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  | Standard | 
| Nome |  TaskStoppedAlert  | 
| Protocolo | E-mail | 
| Endpoint |  Um endereço de email ao qual você atualmente tem acesso  | 

## Etapa 2: registrar uma regra de evento
<a name="cwet2_step_3"></a>

 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) 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 |  <pre>{<br />   "source":[<br />      "aws.ecs"<br />   ],<br />   "detail-type":[<br />      "ECS Task State Change"<br />   ],<br />   "detail":{<br />      "lastStatus":[<br />         "STOPPED"<br />      ],<br />      "stoppedReason":[<br />         "Essential container in task exited"<br />      ]<br />   }<br />}</pre> | 
| Target type |  Serviço da AWS  | 
| Target | Tópico do SNS | 
| Tópico |  TaskStoppedAlert (O tópico que você criou na Etapa 1)  | 

## Etapa 3: testar a regra
<a name="cwet2_step_4"></a>

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](https://console.aws.amazon.com/ecs/v2).

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

1. 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).

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

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

1. Escolha **Criar**.

**Para executar uma tarefa no console**

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

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

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

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

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

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

1. Selecione **Create** (Criar).