#!/bin/bash # set -euo pipefail # set -x export PATH=$PATH:/opt/awscli region=${region-us-west-2} echo $1 >&2 # echo $1 # we are getting $cluster and $service from lambda env vars function listTasks(){ aws --region $region ecs list-tasks --service-name $service --cluster $cluster --query "taskArns" --output text | sed -e 's/\t/ /g' } function describeTasks(){ aws --region $region ecs describe-tasks --cluster $1 --tasks $2 --query "tasks[?lastStatus=='RUNNING'].attachments[0].details[-1].value" --output text } function getActiveConnCount(){ curl -s --max-time 5 http://$1/nginx_status | grep ^Act | awk '{print $NF}' } function updateEcsServiceDesiredCount() { aws --region $region ecs update-service --service $service --cluster $cluster --desired-count $1 } function resp(){ cat <&2 else updateEcsServiceDesiredCount ${desired} > /dev/null || echo "update service failed" >&2 ts=$(date +%s) resp exit 0 fi fi if [[ ${#tasks[@]} == 0 || "${tasks[@]} X" == " X" ]]; then echo "no tasks found" >&2 cat <&2 cat <