как получить идентификатор тома, прикрепленный к экземпляру, из AWS CLI

как получить идентификатор тома, прикрепленный к экземпляру, из AWS CLI

Я хочу получить идентификатор тома, привязанный к экземпляру, подобно тому, как мы получаем идентификатор экземпляра из метаданных.

InstanceID=`curl http://169.254.169.254/latest/meta-data/instance-id

решение1

Идентификаторы томов не доступны из метаданных. Виртуальные устройства доступны вblock-device-mapping/

Вам потребуется использовать AWS CLI (или скрипт, программу и т. д.), чтобы получить идентификаторы томов, назначенные экземпляру.

С помощью CLI:

aws ec2 describe-volumes

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

Узнав идентификатор экземпляра, вы можете отфильтровать только те тома, которые подключены к этому экземпляру:

aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=i-555550604eaf99999

Более подробная информация и примеры будут в документации.

описать-тома

решение2

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

В этом случае, если у вас нет профиля aws и вам нужно только получить идентификатор тома, вы можете использовать ebsnvme-idинструмент aws, который предустановлен в дистрибутивах Linux (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html)

Так, например:

$ sudo /sbin/ebsnvme-id /dev/nvme1n1
Volume ID: vol-c26087a73f2293647
sdb

решение3

Ответ уже дан, но я искал текущий экземпляр присоединенного тома, с которого я запускаю запрос.

Таким образом, вы можете просто передать instance Idответ из curl.

aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)

пример вывода

{
    "Volumes": [
        {
            "AvailabilityZone": "us-west-2b", 
            "Attachments": [
                {
                    "AttachTime": "2018-03-01T07:47:43.000Z", 
                    "InstanceId": "i-abcdedf", 
                    "VolumeId": "vol-12345", 
                    "State": "attached", 
                    "DeleteOnTermination": true, 
                    "Device": "/dev/xvda"
                }
            ], 
            "Encrypted": false, 
            "VolumeType": "gp2", 
            "VolumeId": "vol-123456", 
            "State": "in-use", 
            "Iops": 450, 
            "SnapshotId": "snap-1234", 
            "CreateTime": "2018-03-01T07:47:43.261Z", 
            "Size": 150
        }
    ]
}

Связанный контент