Службы задач AWS-ECS перезапускают автоматизацию
В настоящее время мы запускаем приложение с микросервисами безсерверной архитектуры с использованием AWS ECS. При каждом развертывании или обновлении новых артефактов в ECR нам необходимо перезапускать службы, изменяя задачи с 0 на 1 и наоборот, чтобы перезапустить службу и забрать новые артефакты., Поскольку мы знаем, что этот процесс является очень ручным, и предпринимаются некоторые шаги для его выполнения, я хочу автоматизировать его, возможно ли использовать AWS-lambda или cloudwatch? или любую конфигурацию, если пропустить ручной процесс. Какой код и язык и пример автоматизации мне нужны для этого?
2 ответа
Взгляните на скрипт ecs-deploy. По сути, он заменит существующий сервис последним (или конкретным) изображением из ECR. Таким образом, если у вас есть автоматизация для обновления ECR с последним образом, этот сценарий развернет этот образ в ECS
Настройка, которая может работать, если у вас есть конвейер CI/CD, происходит при загрузке в ECR, запускает лямбду, которая сбрасывает эту соответствующую службу. Предоставление любых переменных в лямбду, таких как тег ECR для получения или имя службы. ECS имеет возможность перезапустить службы с помощью ForceNewDeployment. В Python вызов будет выглядеть так:
updateTrigger = client.update_service(
cluster = myClusterName,
service = serviceToUpdate,
desiredCount = 1,
forceNewDeployment=True
)
С https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html