inspired by https://github.com/silinternational/ecs-deploy, rewrite use python3
This script use ecs client of boto3 to instigate an automatic blue/green deployment. It only updates the tag of the images in the task definition with the same image name you provided This allows you to easily implement CI/CD
ecs-deploy
optional arguments:
-h, --help show this help message and exit
-k AWS_ACCESS_KEY, --aws-access-key AWS_ACCESS_KEY AWS Access Key ID. May also be set as environment variable AWS_ACCESS_KEY_ID
-s AWS_SECRET_ACCESS_KEY, --aws-secret-key AWS_SECRET_ACCESS_KEY AWS Secret Access Key. May also be set as environment variable AWS_SECRET_ACCESS_KEY
-r region_name, --region region_name AWS Region Name. May also be set as environment variable AWS_DEFAULT_REGION
-c cluster_name, --cluster cluster_name Name of ECS cluster
-n service_name, --service-name service_name Name of service to deploy
-i images [images ...], --images images [images ...] Name of Docker image to run(support multiple images)
ex: --images repo/image:1.0 repo2/image2:8.0
--scale nums Modifies the number(positive) of container instances of the current Task Definition
You have a task definition that contains two docker images(aaa/foo:1.0, bbb/bar:2.0)
Update the service with the new image:
ecs-deploy -c test_cluster -n test_service -i aaa/foo:1.1 bbb/bar:3.0
Scale current service number of tasks
ecs-deploy -c test_cluster -n test_service --scale 5
pip install python-ecs-deploy