#bash #amazon-web-services #shell #terminal #aws-cli
#bash #amazon-web-services #оболочка #терминал #aws-cli
Вопрос:
У меня есть сценарий командной строки AWS, который будет использовать AMI экземпляра, создавать конфигурацию запуска, обновлять группу автоматического масштабирования с помощью последней конфигурации запуска и выполнять операцию обновления экземпляра.
Я не хочу выполнять операцию обновления экземпляра, если AMI не находится в «доступном состоянии». Итак, я подумываю о добавлении условия, которое проверяется каждые 10 секунд.
Вот мой существующий файл сценария:
...
#Create AMI
IMAGE=`aws ec2 create-image --instance-id ${INST_ID} --name NEW-IMAGE-${TIME} --no-reboot --output text`
echo "Create Image of instance ${INST_ID}"
#Create new launch Configuration
aws autoscaling create-launch-configuration --launch-configuration-name ${NEW_LC} --image-id ${IMAGE} --instance-type t2.micro --key forclient --associate-public-ip-address --security-groups sg-01be135cb14a00960
echo "Create new Launch Configuration ${NEW_LC}"
#Update Auto Scaling Group to use new Launch Configuration
aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --launch-configuration-name ${NEW_LC}
echo "New Launch Configuration is updated in ASG ${NEW_LC}"
aws autoscaling start-instance-refresh --auto-scaling-group-name ${ASG_NAME}
Я не хочу запускать команду ‘start-instance-refresh’ до тех пор, пока «create-image» не перейдет в состояние «доступно».
Какие изменения мне нужно внести в этот файл сценария, чтобы это произошло?
Ответ №1:
Вы можете использовать изображение-доступный официант после создания образа:
aws ec2 wait image-available --image-ids ${IMAGE}