如何通过Boto3动态获取实例安全组名称

时间:2018-07-05 11:51:20

标签: python amazon-ec2 boto3 aws-security-group

我制作了源实例的映像,现在我不得不克隆新实例,因此我在目标实例创建中对源实例的安全组名称进行了硬编码。现在我希望它是动态的。下面是我的代码:

    ec2 = boto3.resource('ec2',region_name='region') 
    instance = ec2.create_instances( ImageId=image, InstanceType='t2.micro', KeyName='keyName', SecurityGroups=['sgr-ssh-http-public'], MaxCount=1, MinCount=1 ) 

1 个答案:

答案 0 :(得分:0)

这是获得所需输出的多种方法之一。

    import boto3
    client = boto3.client('ec2',region_name='ap-south-1')
    response = client.describe_instances()
    for i in response['Reservations']:
       for j in i['Instances']:
          if (j['InstanceId']=="yourparentinstanceid"):
              for k in j['SecurityGroups']:
                sgname=k['GroupId']
    ec2 = boto3.resource('ec2',region_name='ap-south-1')
    instance = ec2.create_instances( ImageId='imageid', InstanceType='t2.micro', KeyName='keyname',SecurityGroupIds=[sgname], MaxCount=1, MinCount=1,SubnetId='subnetid',)

注意:请先研究有关如何在stackoverflow中在此处提出问题以及如何设置其格式的规则。由于您似乎是stackoverflow的初学者,因此我不会标记您的问题。请以后避免这些错误。