Скрипт для проверки, доступен ли созданный AMI, - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь написать сценарий, в котором мы берем резервную копию AMI (образ машины Amazon), и после того, как он завершен, и его статус показывает «Доступно», он отправляет нам сообщение с информацией об этом.

Я получилпервая часть покрыта, но возникли проблемы со второй частью, т.е. постоянно проверять, когда изображение доступно, и напишите нам.Чтобы проверить статус как доступный, я использую следующую команду:

/usr/bin/aws ec2 describe-images --image-ids=$AMI_ID --query "Images[*].{st:State}" |  grep -e "available" | wc -l'

Это вернет вывод как 1, когда AMI доступен, но возникла проблема в создании цикла, который выполняет указанную выше команду непрерывно, чтобы проверить выводравно 1 или нет.

Пожалуйста, помогите разобраться в этом цикле.

PS Создание ИЗОБРАЖЕНИЯ занимает в некоторых случаях от 10 до 30 минут или даже больше.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вы также можете попробовать, как показано ниже: [Обновите sleepTime по мере необходимости]

Обратите внимание, что я добавил флаг --executable-users self в вашу команду, чтобы вывести список доступных вам изображений.

sleepTime=60 # sleepTime in seconds
while true ; do
  count=$(aws ec2 describe-images --executable-users self --query "Images[*].{st:State}" |  grep -e "available" | wc -l)
  if [[ $count == 1 ]] ; then
     echo "Image is ready... Add your emailing code here"
     exit 0
  fi
  sleep $sleepTime;
  printf "." 
done
0 голосов
/ 31 мая 2018

Вы можете использовать бесконечный цикл

while true
   do
       if /usr/bin/aws ec2 describe-images --image-ids=$AMI_ID --query "Images[*].{st:State}" |  grep -e "available" | wc -l'; then
          break
       fi
   esac
done
...