JSON not working as a command in ECS


I have a json command which I use to setup some configuration settings in my containers and it works fine when used with docker compose and also when I use ecs-cli to deploy it on ecs. When I try to create new revision of the task definition by changing some port values in the command it gives JSON error as it adds and addition " to the command which leads to the failure. Now the task definition created from the cli for fine if I don't touch the command. Is there a fix for it.

1 Answer

Putting JSON in the command might be tricky via the UI. When you use docker-compose, given it's in YAML, it is much easier to write that up.

To go from docker-compose to ECS, I would recommend to try out ECS Compose-X which will translate your docker-compose files into CFN templates. If anything, you might be able to generate the JSON/YAML template that will contain your task and containers definition which will quote / escape your JSON argument accordingly. Might help you get on the right track.

As an alternative, something I have done in multiple places, you can set a complex string value as an environment variable and use that in the command.

Hope this helps,

profile picture
answered 3 months ago
  • So basically what we want is to have task definition and the make changes to it depending on situation , we want to move away from the cli and spin up multiple containers with different ports form the task definition which we will be able to control through lambda . In our use case we don't want have to access cli options.

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.

Guidelines for Answering Questions