Назад | Перейти на главную страницу

Вывести список всех томов, прикрепленных к списку экземпляров, с помощью aws cli

Я использую aws-cli и мне нужен список всех экземпляров и связанных с ними томов.

instance-name,instance-id,volumes-associated

describe-instances и describe-volumes - это другой способ перечисления экземпляров и томов. Но мне нужен сводный список, как в приведенном выше формате. С одним экземпляром может быть связано несколько томов.

Эта команда выведет:

  • Значение, связанное с тегом "Имя".
  • ID экземпляра
  • Идентификатор тома EBS

    aws ec2 describe-instances --query 'Reservations[*].Instances[*].[Tags[?Key==`Name`].Value,InstanceId,BlockDeviceMappings[*].Ebs.VolumeId]' --output text
    
    i-0d9c9b94b6583af4c
    Database
    vol-629feaa2
    i-3da61da2
    Web B
    vol-a6d443e7
    i-7d264642
    Web A
    vol-7840ce4a
    

С экземпляром может быть связано несколько томов EBS.

Другой пример, вывод в формате json:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].{Name:ImageId,InstanceId:InstanceId,VolumeInfo:BlockDeviceMappings}' --output json

В моем случае мне нужно было перечислить все остановленные экземпляры и связанные тома для очистки облачных ресурсов и экономии средств. Следующий код сделает эту работу за вас. Если вы установите его на json, вывод удобен для человека.

aws ec2 describe-instances --filters "Name=instance-state-name,Values=stopped" --query 'Reservations[*].Instances[*].[Tags[?Key==`Name`].Value,InstanceId,BlockDeviceMappings[*].Ebs.VolumeId]' --output text

Используя эту команду, я могу получить список деталей тома с идентификатором экземпляра и размером тома.

aws ec2 describe-volumes –-query "Volumes[*].[Attachments[0].VolumeId,AvailabilityZone,Attachments[0].InstanceId,Attachments[0].State,Size]" --output text > test.txt

Но в моем запросе я должен консолидировать весь список экземпляров, который включает идентификатор экземпляра, состояние экземпляра, регион, платформу, имя пары ключей вместе с именем присоединенного тома, идентификатором тома, размером тома и именем пути монтирования, например / dev / sda1,

Пожалуйста, помогите мне с этим.

С помощью этой команды можно получить сведения об экземпляре, но мне нужен один запрос, чтобы получить все подробности.

aws ec2 describe-instances --filters "Name=instance-state-name,Values=*" --query "Reservations[].Instances[].[Tags[?Key==`Name`]| [0].Value,InstanceId,State.Name,InstanceType,Placement.AvailabilityZone,PrivateIpAddress,VolumeInfo:BlockDeviceMappings" --output text > instances.txt