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 | |
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 |
|
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.
Abra o console em https://console.aws.amazon.com/ecs/v2
. -
No painel de navegação, escolha Task definitions (Definições de tarefa).
-
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).
-
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" ] } -
Escolha Criar.
Para executar uma tarefa no console
Abra o console em https://console.aws.amazon.com/ecs/v2
. -
Na página Clusters, escolha o cluster que você criou nos pré-requisitos.
-
Na guia Tasks (Tarefas), escolha Run new task (Executar nova tarefa).
-
Em Application type (Tipo de aplicação), escolha Task (Tarefa).
-
Em Definição de tarefa, selecione fargate-task-definition.
-
Em Desired tasks (Tarefas desejadas), insira o número de tarefas que serão iniciadas.
-
Escolha Criar.