Я пытаюсь развернуть очень простое веб-приложение на AWS Fargate.
Я отправил образ docker бэкенда приложения в ECR и пытаюсь настроить определение задачи Fargate для контейнера. У меня определены все свойства задачи, настройка довольно проста, но задача не создается, и я всегда получаю ошибку:
Предоставлен недопустимый запрос: Create TaskDefinition: Fargate требует, чтобы определение задачи имело роль исполнения ARN для поддержки образов ECR. (Сервис: AmazonECS; Код состояния: 400; Код ошибки: ClientException; Идентификатор запроса: ; Прокси: null)" (RequestToken: , HandlerErrorCode: InvalidRequest)
Я знаю, что у меня есть образ ECR, и я создал и выбрал роль IAM, которую хочет Fargate (используяэта документация) но он все равно жалуется.
Изначально я создал задачу с типом запуска EC2, и проблем не возникло, но решил использовать тип запуска Fargate из соображений стоимости и простоты.
Что еще мне нужно сделать?
решение1
Я только что столкнулся с этой проблемой и смог решить ее с помощью AWS. По-видимому, есть ошибка при добавлении разрешений, связанных с ролью IAM, при использовании графического интерфейса для определений задач.
Чтобы решить эту проблему, вы можете перейти в Cloud formation, чтобы указать файл конфигурации там. Вы должны увидеть там ваши неудачные определения задач. Щелкните по стеку, связанному с вашим определением задачи, и выберитеОбновлять/Изменить шаблон в дизайнере.
Отредактируйте JSON и добавьте это под"TaskRoleArn": "your task role"
{
[…]
"executionRoleArn" : "the-same-string-that-taskRoleArn-is-set-to"
[…]
}
Это должно решить вашу проблему.
решение2
Похоже, это ошибка в новом интерфейсе ECS.
Вернитесь к старому интерфейсу, сняв флажок «Новый интерфейс ECS» на левой боковой панели, и все должно заработать.
решение3
Кнопка «обновить» у меня отключена. Есть идеи, как ее включить или как-то обойти? Мне удалось создать определения сервисов fargate всего несколько дней назад, поэтому у меня есть шаблоны из cloud formation