- Newest
- Most votes
- Most comments
In case anyone gets here from a Google search, it is now possible to do task definition overrides to the ECS RunTask. You can use the Input (or InputMap and InputTemplate) parameters to the put_targets() method to assign environment overrides to your task, e.g. an Input like (Python code):
'Input': f"{{"containerOverrides": [{{"name":"{task_container_name}","environment":{environment_vars}}}]}}"
Various event details (e.g. from an S3 event) can be used in the InputMap/InputTemplate to send any event details to the task as environment variables.
Hope this helps someone.
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
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.
Relevant content
- asked 2 years ago
- Accepted Answerasked 24 days ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 10 months ago
- AWS OFFICIALUpdated a year ago
Hi there, This commentor is the correct one, and actually this has been possible to do since 2017. Container overrides can always 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