Автоматическое развертывание ECS с ECR

Я использую GitHub, Jenkins, AWS ECR, AWS ECS.

Я хочу выполнить автоматическое развертывание, когда у GitHub будет новый коммит. Когда GitHub имеет новую фиксацию, GitHub отправляет веб-перехватчик Jenkins, Jenkins создает образы и отправляет в ECR с тегом «latest».

Интересно, как сделать задачу перезапуска службы ECS и автоматически повторно развернуть образы при изменении образа ECR?


person Yeonsuk Choi    schedule 28.11.2018    source источник
comment
Вместо этого вы можете спросить об этом на DevOps.stackexchange.com   -  person Andreas    schedule 28.11.2018


Ответы (1)


Не используйте latest в этой настройке. Попросите Дженкинса выбрать тег для изображения (возможно, на основе идентификатора фиксации исходного элемента управления, имени тега исходного элемента управления или метки времени). Предоставьте ему возможность обновлять задачи ECS, а затем (после того, как сборка будет выполнена и пройдено соответствующее предварительное тестирование), пусть Дженкинс изменит тег изображения в задаче на то, что он только что создал. ECS увидит, что образ изменился, извлечет новый образ и соответственно запустит контейнеры.

Две другие веские причины поступать таким образом: если у вас есть явные версии, у вас может быть предпроизводственный кластер, развертывать там что-то, запускать тесты, а затем развертывать ту же версию в производственной среде; и если развертывание пойдет не так, вы можете просто выполнить откат, вручную вернув тег к вчерашней сборке, что невозможно, если у вас есть единственная версия latest.

person David Maze    schedule 28.11.2018
comment
Как Дженкинс меняет тег изображения в задаче? - person Yeonsuk Choi; 28.11.2018
comment
также можно использовать параметр --force-new-deployment, который укажет ECS на необходимость получения последнего образа контейнера из ECR без необходимости создания новых задач. docs.aws.amazon.com/cli/latest/ ссылка / ecs / - person Tamas Kalman; 08.12.2020