Как найти идентификатор экземпляра ec2, передав идентификатор тома с помощью boto - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу передать идентификатор тома в качестве параметра, который затем возвращает идентификатор экземпляра в python

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Вам нужно будет позвонить describe_instances().

. Вы можете либо отфильтровать результаты самостоятельно в Python, либо передать Filters для block-device-mapping.volume-id.

import boto3

ec2_client = boto3.client('ec2', region_name='ap-southeast-2')

response = ec2_client.describe_instances(Filters=[{'Name':'block-device-mapping.volume-id','Values':['vol-deadbeef']}])

instance_id = response['Reservations'][0]['Instances'][0]['InstanceId']

print(instance_id)

Объем можетбыть привязанным только к одному экземпляру за раз, поэтому в этом коде предполагается, что возвращается только один экземпляр.

0 голосов
/ 10 апреля 2019

Как отметил @Rajesh, более простой способ - использовать DescribeVolumes, который возвращает Attachment информацию:

import boto3

ec2_client = boto3.client('ec2', region_name='ap-southeast-2')

response = ec2_client.describe_volumes(VolumeIds=['vol-deadbeef'])

print(response['Volumes'][0]['Attachments'][0]['InstanceId'])

В этом коде предполагается, что экземпляр является первым вложением на томе (поскольку тома EBS могут быть подключены только к одному экземпляру).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...