How to run AWS ECS Task overriding environment variables How to run AWS ECS Task overriding environment variables docker docker

How to run AWS ECS Task overriding environment variables


You have to provide a JSON document as documented under the --overrides option.

{  "containerOverrides": [    {      "name": "string",      "command": ["string", ...],      "environment": [        {          "name": "string",          "value": "string"        }        ...      ]    }    ...  ],  "taskRoleArn": "string"}

You have to specify the name of the container to get the environment override, and specify a list of environment key-value pairs.

You can specify the JSON document in-line with your argument or pass a file path argument to the task. I will show both ways.

Passing JSON in-line

Your command would look like this (fill in the value CONTAINER_NAME_FROM_TASK).

aws ecs run-task --overrides '{ "containerOverrides": [ { "name": "CONTAINER_NAME_FROM_TASK", "environment": [ { "name": "NAME", "value": "123" }, { "name": "DATE", "value": "1234-12-12" }, { "name": "SCRIPT", "value": "123456" } ] } ] }' --task-definition (...)

That does look rather ugly though, and would be annoying to edit. It also only works on Unix-y systems and would require quote escaping in Windows.

So alternatively, you can pass a file path to the AWS CLI and have it load your override JSON from a file.

Passing a file path argument

Create a file, let's call it overrides.json, and put the same JSON into it:

{    "containerOverrides": [{        "name": "CONTAINER_NAME_FROM_TASK",        "environment": [{            "name": "NAME",            "value": "123"        }, {            "name": "DATE",            "value": "1234-12-12"        }, {            "name": "SCRIPT",            "value": "123456"        }]    }]}

Then, assuming your file is in the current directory:

aws ecs run-task --overrides file://overrides.json --task-definition (..)

If your file is elsewhere in the filesystem and you're on a Linux/Unix-y system:

aws ecs run-task --overrides file:///path/to/overrides.json --task-definition (..)

If your file is elsewhere in the filesystem and you're doing this in Windows:

aws ecs run-task --overrides file://DRIVE_LETTER:\path\to\overrides.json --task-definition (..)