
我想要取得附加到實例的磁碟區 ID,就像我們如何從元資料取得實例 ID 一樣
InstanceID=`curl http://169.254.169.254/latest/meta-data/instance-id
答案1
卷 ID 無法從元資料中取得。虛擬設備可在block-device-mapping/
您將需要使用 AWS CLI(或腳本、程式等)來取得指派給執行個體的磁碟區 ID。
使用 CLI:
aws ec2 describe-volumes
輸出將包括磁碟區附加到的執行個體 ID。
知道執行個體 ID 後,您可以僅篩選附加到該執行個體的磁碟區:
aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=i-555550604eaf99999
該文件將包含更多詳細資訊和範例。
答案2
就我而言,我需要在只有 shell 存取權限的實例上擷取磁碟區 ID。我需要將磁碟區 ID 傳達給設定虛擬機器的客戶。
在這種情況下,如果您沒有 aws 設定文件,並且只需要取得磁碟區 id,則可以使用ebsnvme-id
Linux 發行版上預先安裝的 aws 工具(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
所以你可以從捲曲回應中傳遞。
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
}
]
}