有和你一样的问题 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”属性
问题是client.run\u instances不返回EC2实例列表,而是返回实例字典列表。
要转换并返回到EC2实例,我在上面的代码之后执行了以下操作:
ec2 = boto3.resource('ec2') inst = ec2.Instance(instance['InstanceId'])