This script will help you do a rolling restart of a service, taking down a container at a time and waiting for a new one to come up, then proceeding with the next container and so on.
This exports to functions that will be of interest: restartService
and getServicesInclusters
.
This is an async
function with signature:
const restartService = async (cluster, serviceName) => void
This is a helper function that will give you a list of clusters with their service names. The function signature for this is:
const getServicesInclusters = async () => [ { clusterArn: 'someArn', serviceArns: [ 'serviceArns', 'serviceArns2' ] }, ]
Run npm install
and then npm run make
. This will generate the executable you can run under ./dist/app.dist.js
You only need to provide the service definition with --service
and the cluster name with --cluster
. Both of those can be found in the ECS console.
Example:
node ./dist/app.dist.js --cluster docker-cluster --service serviceName