代码之家  ›  专栏  ›  技术社区  ›  Alex

如何通过BOTO3程序从创建的AWS实例中检索公共DNS?

  •  0
  • Alex  · 技术社区  · 8 年前

    有和你一样的问题 Retrieving public dns of EC2 instance with BOTO3

    首先,我创建并运行一个实例:

    r = client.run_instances(
    ImageId=aws_config['base_ami'], 
    MinCount=1, 
    MaxCount=1,
    KeyName=aws_config['key_name'],
    InstanceType="t2.small",
    NetworkInterfaces=[
    {
        'DeviceIndex': 0,
        'SubnetId' : aws_config['subnet'],
        'Groups': aws_config['security_groups'],
        'AssociatePublicIpAddress': True            
    }]                     
    )
    instance = r["Instances"][0]
    

    在我的程序中,在instance.load()之后有AttributeError

    instance.load()
    

    AttributeError:“dict”对象没有“load”属性

    1 回复  |  直到 8 年前
        1
  •  0
  •   Alex    8 年前

    问题是client.run\u instances不返回EC2实例列表,而是返回实例字典列表。

    要转换并返回到EC2实例,我在上面的代码之后执行了以下操作:

    ec2 = boto3.resource('ec2')
    inst = ec2.Instance(instance['InstanceId'])