如何從 AWS CLI 取得附加到執行個體的磁碟區 ID

如何從 AWS CLI 取得附加到執行個體的磁碟區 ID

我想要取得附加到實例的磁碟區 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-idLinux 發行版上預先安裝的 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
        }
    ]
}

相關內容