Amazon-Web-Services

AWS EC2 描述實例 - 按根設備過濾

  • April 13, 2020

希望你能幫助這個查詢。希望答案能讓我建構更好的查詢。我正在嘗試按特定實例的根設備進行過濾並獲取根設備卷 ID。你能解釋一下我如何加入兩個這樣的查詢嗎?搜尋 DeviceName /dev/sda1 得到對應的 VolumeId。

aws ec2 describe-instances --instance-id i-02bc19e18ef09cdbe --query 'Reservations[].Instances[].BlockDeviceMappings[]'

[
   {
       "Ebs": {
           "AttachTime": "2017-04-20T13:32:04.000Z",
           "VolumeId": "vol-0118bd9c0a08164f2",
           "DeleteOnTermination": false,
           "Status": "attached"
       },
       "DeviceName": "/dev/sda1"
   }
]

這個問題有點老了,但這裡有一個可能的解決方案。做出一個假設 - 即,根設備是/dev/sda1. 我認為這對 AWS 來說是一個相當不錯的假設。如果您不指定實例 ID,則將返回所有實例。然後我正在搜尋等於 /dev/sda1 的 DeviceName。在搜尋詞之後,將使用 DeviceName 和 VolumeId 創建一個列表。

aws ec2 describe-instances --query "Reservations[].Instances[].BlockDeviceMappings[?DeviceName == '/dev/sda1'].{DeviceName: DeviceName, VolumeID: Ebs.VolumeId}

引用自:https://serverfault.com/questions/845706