2017-06-15 2 views
1

J'essaye d'obtenir l'ID de volume du périphérique monté à/dev/sdf à une instance particulière.Comment obtenir le volume de l'appareil monté sur/dev/sdf pour une instance particulière avec aws cli?

Commande: EC2 aws describe-volumes de Nom = attachment.instance-id, valeurs = $ instance_id_main --region nous-ouest-2 --output JSON

Sortie:

{ 
    "Volumes": [ 
     { 
      "AvailabilityZone": "us-west-2a", 
      "Attachments": [ 
       { 
        "AttachTime": "2017-06-15T12:59:18.000Z", 
        "InstanceId": "i-073cfdf5832e5a7ab", 
        "VolumeId": "vol-096ca253d37b3e42b", 
        "State": "attached", 
        "DeleteOnTermination": false, 
        "Device": "/dev/sdf" 
       } 
      ], 
      "Tags": [ 
       { 
        "Value": "NewVolume", 
        "Key": "Name" 
       } 
      ], 
      "Encrypted": false, 
      "VolumeType": "gp2", 
      "VolumeId": "vol-096ca253d37b3e42b", 
      "State": "in-use", 
      "Iops": 100, 
      "SnapshotId": "", 
      "CreateTime": "2017-06-15T12:39:06.687Z", 
      "Size": 5 
     }, 
     { 
      "AvailabilityZone": "us-west-2a", 
      "Attachments": [ 
       { 
        "AttachTime": "2017-06-15T12:57:46.000Z", 
        "InstanceId": "i-073cfdf5832e5a7ab", 
        "VolumeId": "vol-0189e6a20392bb709", 
        "State": "attached", 
        "DeleteOnTermination": true, 
        "Device": "/dev/sda1" 
       } 
      ], 
      "Tags": [ 
       { 
        "Value": "NewTesting", 
        "Key": "Name" 
       } 
      ], 
      "Encrypted": false, 
      "VolumeType": "gp2", 
      "VolumeId": "vol-0189e6a20392bb709", 
      "State": "in-use", 
      "Iops": 100, 
      "SnapshotId": "snap-0a642b1f5be55819a", 
      "CreateTime": "2017-06-15T12:57:46.027Z", 
      "Size": 8 
     } 
    ] 
} 

J'ai essayé avec l'option --query de décrire le volume donné dans l'exemple puis j'ai obtenu en dessous de la sortie.

Commande:

aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=$instance_id_main --query 'Volumes[*].{ID:VolumeId,Tag:Tags}' --region us-west-2 --output json 

[ 
    { 
     "Tag": [ 
      { 
       "Value": "NewVolume", 
       "Key": "Name" 
      } 
     ], 
     "ID": "vol-096ca253d37b3e42b" 
    }, 
    { 
     "Tag": [ 
      { 
       "Value": "NewTesting", 
       "Key": "Name" 
      } 
     ], 
     "ID": "vol-0189e6a20392bb709" 
    } 
] 

Alors j'ai essayé d'obtenir les pièces jointes et je me suis ci-dessous erreur.

Commande:

aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=$instance_id_main --query 'Volumes[*].{Attachments:Device[*]}' --region us-west-2 --output text 

Sortie:

[ 
    { 
     "Attachments": null 
    }, 
    { 
     "Attachments": null 
    } 
] 

Toute idée serait appréciée.

Répondre

3

J'ai fait la même tâche en utilisant l'option --filters avec la même commande.

aws ec2 describe-volumes --filters Name=attachment.device,Values=/dev/sdf Name=attachment.instance-id,Values=$instance_id_main --query 'Volumes[*].{ID:VolumeId}' --region us-west-2 --output text 

sortie:

vol-096ca253d37b3e42b