public_ip_id = instance.network_interfaces_attribute[0]['Association']['AllocationId']
KeyError:'AllocationId'
如果不是 AllocationId 那么正确的属性应该是什么?
所有 3 种方法都会打印相同的 IP 地址(尽管如果您有多个网络接口,结果会有所不同):
import boto3
ec2_resource = boto3.resource('ec2')
instance = ec2_resource.Instance('i-0e5bcb595a576c9e9')
print(instance.public_ip_address)
ec2_client = boto3.client('ec2')
instance = ec2_client.describe_instances(InstanceIds=['i-0e5bcb595a576c9e9'])
print(instance['Reservations'][0]['Instances'][0]['PublicIpAddress'])
print(instance['Reservations'][0]['Instances'][0]['NetworkInterfaces'][0]['Association']['PublicIp'])