en mi CI he configurado la implementación en el entorno de AWS ECS a través de un script bash
**deploy.sh** [...] aws ecs register-task-definition --cli-input-json file://./deploy/skeleton.json TASK_DEFINITION_ARN=$(aws ecs --output text list-task-definitions --family-prefix "${PROJECT_NAME}" --sort DESC --query "taskDefinitionArns[0]") aws ecs update-service \ --cluster "${PROJECT_NAME}" \ --service "${PROJECT_NAME}" \ --task-definition "${TASK_DEFINITION_ARN}" \ --force-new-deployment \ --deployment-configuration "maximumPercent=200,minimumHealthyPercent=100" \ --desired-count ${DESIRED_COUNT} [...]y
**skeleton.json** { "family": "backend", "executionRoleArn": "arn:aws:iam::000000000000:role/XXXX", "taskRoleArn": "arn:aws:iam::0000000:role/XXXX", "networkMode": "awsvpc", "containerDefinitions": [{ "name": "csharp", "essential": true, "environment":[{ "name" : "CONNECTIONSTRINGS__Redis", "value" : "XXXX" }, { "name" : "CONNECTIONSTRINGS__Database", "value" : "XXX" }, { "name" : "ASPNETCORE_ENVIRONMENT", "value" : "XXX" }], "image": "00000000.dkr.ecr.eu-west-1.amazonaws.com/prj/backend:643105ef", "portMappings": [ { "containerPort": 80, "protocol": "tcp" } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/backend/", "awslogs-region": "eu-west-1", "awslogs-stream-prefix": "csharp" } } }], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512" }cuando trato de implementar con el servicio de actualización, el cli responde con:
An error occurred (InvalidParameterException) when calling the UpdateService operation: The container backend does not exist in the task definition.pero si cambio en json el nombre del contenedor de csharp a backend , la implementación funciona.
¿Es eso un error? Gracias
El name del contenedor que defina en task_definition debe coincidir con el de la configuración de load_balancer container_name de ecs_service. Esto permitirá que el balanceador de carga asigne dinámicamente los puertos del contenedor y lo adjunte a los grupos de destino.

Estoy respondiendo esta vieja pregunta para señalar algunas notas para los Googlers.
Parece que hay dos problemas relacionados con este mensaje de error.
La primera es que el error en sí está equivocado, ya que el motivo no está relacionado directamente con la definición de la tarea y, en realidad, es el Load Balancer (LB) quejándose del nombre del contenedor que está tratando de encontrar en la definición de la tarea.
Como problema en sí mismo, al crear un LB, containerName se pasa como accesorio y, en la mayoría de los casos, es uno de los nombres de contenedor en la primera revisión de definición de tarea. Cambiar los nombres de los contenedores que se usan al crear un LB, mediante la creación de nuevas revisiones de tareas, probablemente generaría este error .
En este caso, recrear la definición de servicio y/o tarea probablemente resolvería el problema.
ECS le permite definir muchos contenedores dentro de una task definition , por lo que el ELB necesita saber a qué contenedor dirigir el tráfico, para hacerlo, almacena el nombre del contenedor con el que lo configuró durante la creación.
Si recibe este error, probablemente no esté incluyendo un contenedor con el mismo Container Name , por lo que se queja de no saber a qué conectarse dentro de esa nueva definición de tarea.
Cambie el name del contenedor dentro de la task definition para que sea el mismo que el contenedor definido en la definición de la tarea que se está ejecutando actualmente (o la última implementada correctamente).