2016-02-24 88 views
0

我想轮询AWS Scaling组的当前成员,以便我可以在代码中增加一个值。我需要能够根据活动成员的数量分配工作进程。我创建了下rc.local中运行一个新的缩放组成员的脚本:引导期间AWS轮询缩放组

for ((i=0; i<20; i++)); do 
    OUT=$(aws autoscaling describe-auto-scaling-instances --query AutoScalingInstances[].InstanceId | wc -l) 
    echo "Output is $OUT" >> /tmp/ec2log 
    echo "Waiting for a response...." >> /tmp/ec2log 
    ping -c 5 127.0.0.1 &> /dev/null # Wait for a bit before retrying 
done 

我的问题(为什么我遍历该命令的原因)是,AWS CLI不似乎回应了我最初的要求。

如何将缩放组中的当前服务器数量传递到添加到该组的新服务器?

+1

这可能可以实现,但我相信你错了。自动调节应该改变实例的数量以适应你没有其他方式的工作量。每个实例都应该有固定数量的工作人员,并且在工作人员闲置时工作人员无法跟上和减少工作量时需要扩大规模。 – Mircea

回答

2

当您运行此脚本时,网络可能无法启动,这就是为什么aws cli没有响应,您的脚本应成功调用exit 0。由于它是在每个运行级别结束时执行的,因此在rc.local中执行脚本是错误的。

我打电话给aws autoscaling describe-auto-scaling-instances --region us-east-1 --query AutoScalingInstances []。InstanceId --output text | wc -w在您的代码中获取自动缩放组的成员数量。

rc.local中

该脚本在每个多用户运行级别的结尾执行。

确保脚本将“退出0”成功或错误的任何其他

值。

+0

良好的通话...我将包括此启动脚本启动我的应用程序 – user3063045