Skip to content

How to convince EventBridge to pass S3 event information to an ecs target?

0

I currently use S3 PutObject Event to trigger a Lambda Function. This lambda function receives details of the object (such as name) and then starts an ECS task where it passes relevant details via environment variables.

I recently came across this tutorial that shows how to use CloudWatch rules (now handled by Event Bridge) to start an ECS task when a file is uploaded to S3.

The tutorial explains how to configure the S3 Event and how to configure the ECS task that will be triggered. What i can't find is how to get details of the S3 Event into the ECS Task.

Is there a way to pass details from the originating S3 event into the ECS task?

2 Answers
0

The answer from BruceRoberts is the correct one not - Container overrides can be provided via inputTransformers from the event payload. Shape your event payload into the JSON matching the TaskOverride object and you can use this to configure any of the parameters (including container overrides and environment variables, but not just!)

For more on EventBridge input transformers: https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html

AWS

answered 4 years ago

EXPERT

reviewed 2 years ago

-2
Accepted Answer

Unfortunately, EventBridge lacks the ability to pass task definition overrides to the ECS RunTask API, which would allow you to specify environment variables or override the command line when starting a task.

As a workaround, I would recommend having S3 or EventBridge invoke a Lambda function instead. Your Lambda function can then call RunTask directly and pass the desired overrides to the task.

AWS
EXPERT

answered 6 years ago

EXPERT

reviewed 3 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.