Envío de alertas de Amazon Simple Notification Service para eventos de tareas detenidas de Amazon ECS
Configure una regla de eventos de Amazon EventBridge que solo capture eventos de tareas en los que la tarea dejó de ejecutarse porque uno de sus contenedores esenciales finalizó. El evento solo envía eventos de tareas con una propiedad stoppedReason
específica al tema de Amazon SNS designado.
Requisito previo: configurar un clúster de prueba
Si no dispone de un clúster en ejecución de donde capturar eventos, siga los pasos que se describen en Introducción a la consola mediante contenedores de Linux en AWS Fargate para crear uno. Al final de este tutorial, ejecutará una tarea en este clúster para comprobar que el tema de Amazon SNS y la regla de EventBridge se han configurado correctamente.
Requisito previo: configurar los permisos para Amazon SNS
Para permitir que EventBridge publique en un tema de Amazon SNS, utilice los comandos aws sns get-topic-attributes y aws sns set-topic-attributes.
Para obtener más información sobre cómo agregar el permiso, consulte Permisos de Amazon SNS en la Guía para desarrolladores de Amazon Simple Notification Service.
Agregue los siguientes permisos:
{ "Sid": "PublishEventsToMyTopic", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns: Publish", "Resource": "arn:aws:sns:
region
:account-id
:TaskStoppedAlert", }
Paso 1: Crear y suscribirse a un tema de Amazon SNS
Para este tutorial, se configura un tema de Amazon SNS para utilizarse como destino de eventos para la nueva regla de eventos.
Para obtener información acerca de cómo crear un tema de Amazon SNS y suscribirse a él, consulte Introducción a Amazon SNS en la Guía para desarrolladores de Amazon Simple Notification Service y utilice la siguiente tabla para determinar qué opciones seleccionar.
Opción | Valor |
---|---|
Tipo |
Estándar |
Nombre |
TaskStoppedAlert |
Protocolo | Correo electrónico |
Punto de conexión |
Una dirección de correo electrónico a la que actualmente tiene acceso |
Paso 2: Registrar una regla de eventos
A continuación, registre una regla de eventos que capture solo eventos de tarea parada de tareas con contenedores parados.
Para obtener información sobre cómo crear y suscribirse a un tema de Amazon SNS, consulte Create a rule in Amazon EventBridge (Crear una regla en Amazon EventBridge) en la Guía del usuario de Amazon EventBridge y utilice la siguiente tabla para determinar qué opciones seleccionar.
Opción | Valor |
---|---|
Tipo de regla |
Regla con un patrón de evento |
Origen del evento | Eventos de AWS o eventos de socios de EventBridge |
Patrón del evento |
Patrón personalizado (editor JSON) |
Patrón del evento |
|
Tipo de objetivo |
Servicio de AWS |
Destino | Tema de SNS |
Tema |
TaskStopPedAlert (El tema que ha creado en el paso 1) |
Paso 3: Pruebe la regla
Compruebe que la regla funciona mediante la ejecución de una tarea que se cierra poco después de iniciarse. Si la regla de eventos está configurada correctamente, recibirá un mensaje de correo electrónico en unos minutos con el texto del evento. Si tiene una definición de tarea existente que puede satisfacer los requisitos de la regla, ejecute una tarea con ella. Si no lo hace, los siguientes pasos le guiarán a través del registro de una definición de tarea de Fargate y su ejecución.
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En el panel de navegación, elija Task Definitions (Definiciones de tareas).
-
Elija Create new task definition (Crear nueva definición de tarea) y Create new task definition with JSON (Crear nueva definición de tarea con JSON).
-
En el cuadro del editor JSON, edite el archivo JSON y copie lo siguiente en el 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" ] } -
Seleccione Crear.
Para ejecutar una tarea a través de la consola
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En la página Clústeres, seleccione el clúster que creó en los requisitos previos.
-
En la pestaña Tasks (Tareas), elija Run new task (Ejecutar nueva tarea).
-
En Application type (Tipo de aplicación), elija Task (Tarea).
-
En Definición de tareas, elija fargate-task-definition.
-
En Desired tasks (Tareas deseadas), ingrese el número de tareas que se lanzarán.
-
Seleccione Crear.