You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Boto3获取EC2实例Image.name属性失败及慢加载警告求助

问题:Boto3会话复用后无法加载EC2镜像嵌套属性

我有一个运行时长约20分钟的测试脚本,情况如下:

  • AWSSession在测试启动时初始化,仅在初始几个步骤中使用
  • 测试执行约10分钟后,复用启动时创建的AWSSession;返回该会话的方法会在令牌过期超过10分钟时创建新会话

当代码尝试通过ec2_instance.image.name(ec2_instance为EC2实例对象)获取镜像名称时,出现警告:

pydevd warning:  boto3 Getting attribute Image.name was slow

我尝试过显式获取镜像再读取名称:

image = self.ec2_resource.Image(ec2_instance.image_id)
image_name: str = image.name

但仍出现相同警告,且无法获取镜像名称,触发如下错误:

self = ec2.Image(id='ami-0cd653a2ee34f2e96')
    def property_loader(self):
        if self.meta.data is None:
            if hasattr(self, 'load'):
                self.load()
            else:
                raise ResourceLoadException(
                    f'{self.__class__.__name__} has no load method'
                )
    
>       return self.meta.data.get(name)
E       AttributeError: 'NoneType' object has no attribute 'get'
/usr/local/lib/python3.9/site-packages/boto3/resources/factory.py:386: AttributeError

目前观察到的异常现象:

  • 多数嵌套对象(尤其是镜像相关属性)无法加载,但非嵌套属性均可正常访问
  • 测试初期访问该属性时完全正常

我推测这是会话长时间未使用导致的时序问题,已尝试将令牌更新时间改为5分钟,但问题依旧。

请问是否有人遇到过类似问题?

Boto3版本:1.24.87


内容的提问来源于stack exchange,提问作者Praveen Tata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:05:35