Обновление кластера ECS от Jenkins с использованием AWSCLI - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть кластер ECS fargate. Я работаю над CICD для создания изображений sh в репозитории ECR, а затем обновляю кластер. Я использую последний тег в своих репозиториях.

Используя приведенный ниже способ, я использовал сделать это вручную. Создать новую версию определения задачи ----> Обновить сервис новой версией определения задачи ---> Остановить задачу со старой версией.

Теперь, когда я пытаюсь автоматизировать это из Jenkins, я использую AWSCLI.

У меня один вопрос. Если я использую приведенную ниже команду, создаст ли она новую версию службы определения задач и обновлений? ИЛИ Сначала мне нужно создать новую версию определения задачи.

  aws ecs update-service --cluster ec2cluster_name --service service_name --force-new-deployment

1 Ответ

1 голос
/ 24 февраля 2020

Если вы обновляете / используете тот же тег изображения, тогда, когда вы делаете forceNewDeployment, он извлечет последнее изображение из репозитория и обновляет службу ECS.

Документация службы ecs-update-service гласит:

Если в обновленном образе Docker используется тот же тег, что и в существующем определении задачи для вашей службы (например, my_image: latest), вам не нужно создавать новую версию определение вашей задачи. Вы можете обновить сервис, используя опцию forceNewDeployment. Новые задачи, запущенные при развертывании, извлекают текущую комбинацию изображения / тега из вашего хранилища при запуске.

https://docs.aws.amazon.com/cli/latest/reference/ecs/update-service.html

Приведенная выше команда не будет создать новое определение задачи и создать определение задачи. register-task-definition

...