Запланированное задание AWS ecs с cloudwatch - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь создать запланированное задание с помощью cloudwatch.Я использую эту страницу

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html

Проблема, которую я вижу, заключается в том, что, когда я запускаю задачу в обычном режиме, aws запрашивает

  1. vpc
  2. подсетей
  3. Launchtype

НО, когда я использую целевой объект cloudwatch, он не запрашивает vpc, подсети и т. Д. Почему это так?

1 Ответ

0 голосов
/ 21 июня 2019

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"}' \
;
...