我正在尝试轮询AWS Scaling组的当前成员,以便我可以在代码中增加一个值。我需要能够根据活动成员的数量来分配工作进程。我在一个新的缩放组成员上创建了一个在rc.local下运行的脚本:
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似乎没有响应我的初始请求。
如何将我的扩展组中当前数量的服务器传递给添加到该组的新服务器?
答案 0 :(得分: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”错误值。