CloudFormation не был обновлен для поддержки некоторых функций Fargate.Если вы получаете ошибку при попытке развернуть задачу ECS из CloudFormation, попробуйте использовать вместо этого интерфейс командной строки ( aws events put-target ), который позволяет вам добавить цель, содержащую необходимые параметры ECS длятип запуска и настройки сети.
Вот пример того, как я сконфигурировал свои задачи ECS для развертывания из CLI вместо CloudFormation:
1. Добавьте конфигурацию vpc / subnet в переменную, NETWORK_CONFIGURATION
:
NETWORK_CONFIGURATION='{"awsvpcConfiguration":{"AssignPublicIp":"ENABLED","SecurityGroups": \["'${AWS_NETWORKCONFIG_SECURITY_GROUP}'"],"Subnets":["'${AWS_NETWORKCONFIG_SUBNET}'"]}}'
Запустите следующую команду для развертывания вашей задачи, которая будет принимать конфигурацию vpc из переменной, объявленной выше
aws events put-targets \
--rule events-rule--${TASK_NAME} \
--targets '{"Arn":"arn:aws:ecs:'${AWS_REGION}':'${AWS_ACCOUNT_ID}':cluster/ecs-cluster-1","EcsParameters":{"LaunchType":"FARGATE","NetworkConfiguration":'${NETWORK_CONFIGURATION}',"TaskCount": 1,"TaskDefinitionArn": "arn:aws:ecs:'${AWS_REGION}':'${AWS_ACCOUNT_ID}':task-definition/ecs-task-'${TASK_NAME}'"},"Id": "ecs-targets-'${TASK_NAME}'","RoleArn": "arn:aws:iam::'${AWS_ACCOUNT_ID}':role/ecsEventsRole"}' \
;