Как найти AMI идентификатор, используя сценарий оболочкиКак найти AMI идентификатор, используя сценарий оболочки
Мой Сценарий:
for i in $(cat /tmp/amidel.txt); do
echo "Image ID of instance which needed to be Deregistered is $i ";
val1="$i"-i-*
aws ec2 describe-images --filters "Name=name,Values=$val1" | awk '{ print $11 }'
done
Теперь Проблема в том, что «AWS EC2 описывают-изображения» возвращает идентификатор изображения для различных AWK значение:
$ aws ec2 describe-images --filters "Name=name,Values=instance-20Aug15-i-*" | awk '{ print $9 }'
Выход:
ami-xxxx
$ aws ec2 describe-images --filters "Name=name,Values=instance-18Aug15-i-*" | awk '{ print $11 }'
Выхода:
ami-xxxx
Это происходит потому, что третье значение, возвращаемое "AWS EC2 описывает-образа" является комментарием, который изменяется для каждого ами изображения:
$ aws ec2 describe-images --filters "Name=name,Values=instance-18Aug15-i-*"
Выход:
IMAGES x86_64 This is for Daily auto AMI creation xen ami-bebfb1ec 008392659736/instance-18Aug15-i-1effb6d3 machine aki-503e7402 instance-18Aug15-i-1effb6d3 008392659736 False /dev/sda1 ebs available paravirtual
BLOCKDEVICEMAPPINGS /dev/sda1
EBS True snap-51539764 8 gp2
BLOCKDEVICEMAPPINGS /dev/sdf
EBS False snap-4e95d37b 20 gp2
Для 2-го Ами:
$ aws ec2 describe-images --filters "Name=name,Values=instance-20Aug15-i-*"
Выход:
IMAGES x86_64 This is created by ami-backup.sh xen ami-52020b00 008392659736/instance-20Aug15-i-127fb8df machine instance-20Aug15-i-127fb8df 008392659736 False /dev/sda1 ebs simple available hvm
BLOCKDEVICEMAPPINGS /dev/sda1
EBS True snap-2b563aca 8 gp2
Поэтому, пожалуйста, помогите мне, как разобрать это, чтобы получить надлежащее AMI идентификатор или есть другой способ, чтобы найти AMI идентификатор из имени ами?
'AWK«/ami-[[:alnum:]]+/{match($0,/.*(ami-[[:alnum:]]+). * /, а); print a [1]} '' может быть –