Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

247
Vistas
¿Cómo obtener el contenido del evento en ECS cuando lo invoca el evento cloudwatch/eventbridge?

Podemos configurar reglas de eventos para activar una tarea de ECS, pero no veo si el evento de activación se pasa a la tarea de ECS en ejecución y en la tarea cómo obtener el contenido de este evento. Si se dispara un Lambda, podemos obtenerlo de la variable de event , por ejemplo, en Python:

 def lambda_handler(event, context): ...

Pero en ECS no veo cómo puedo hacer cosas similares. Ir al depósito de registros de Cloudtrail no parece ser una buena manera porque tiene un retraso de alrededor de 5 minutos para que aparezca el nuevo registro/evento, lo que requiere que ECS esté esperando y una lógica adicional para hablar con S3 y encontrar y leer el Iniciar sesión. Y cuando los eventos desencadenantes son frecuentes, esto suena difícil de manejar.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Una forma de manejar esto es establecer dos objetivos en la regla de vigilancia de la nube.

  • Un objetivo iniciará la tarea ECS
  • Un destino enviará el mismo evento a SQS

Entonces el SQS contendrá información como

 { "version": "0", "id": "89d1a02d-5ec7-412e-82f5-13505f849b41", "detail-type": "Scheduled Event", "source": "aws.events", "account": "123456789012", "time": "2016-12-30T18:44:49Z", "region": "us-east-1", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/SampleRule" ], "detail": {} }

Entonces, cuando ECS TASK esté activo, podrá leer el evento del SQS. ingrese la descripción de la imagen aquí

Por ejemplo, en el punto de entrada de Docker

 #!/bin/sh echo "Starting container" echo "Process SQS event" node process_schdule_event.sj #or if you need process at run time schdule_event=$(aws sqs receive-message --queue-url https://sqs.us-west-2.amazonaws.com/123456789/demo --attribute-names All --message-attribute-names All --max-number-of-messages 1) echo "Schdule Event: ${schdule_event}" # one process done, start the main process of the container exec "$@"
over 4 years ago · Santiago Trujillo Denunciar

0

Después de una mayor investigación, finalmente encontré otra solución que es usar S3 para invocar a Lambda y luego, en Lambda, uso ECS SDK (boto3, uso Python) para ejecutar mi tarea de ECS. De esta forma, puedo pasar fácilmente el contenido del evento a ECS y es casi en tiempo real.

Pero aún le doy crédito a @Adiii porque su solución también funciona.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda