Я использую aws-cli
и мне нужен список всех экземпляров и связанных с ними томов.
instance-name,instance-id,volumes-associated
describe-instances
и describe-volumes
- это другой способ перечисления экземпляров и томов. Но мне нужен сводный список, как в приведенном выше формате. С одним экземпляром может быть связано несколько томов.
Эта команда выведет:
Идентификатор тома 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