
Я хочу получить идентификатор тома, привязанный к экземпляру, подобно тому, как мы получаем идентификатор экземпляра из метаданных.
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
}
]
}