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

调用Boto3 EC2.Client的describe_fleets方法报属性错误

解决AttributeError: 'EC2' object has no attribute 'describe_fleets'的问题

核心原因

describe_fleets是EC2 Fleet相关的API接口,它是在Boto3的较新版本中才被引入的。如果你的Boto3版本过低,EC2客户端对象自然就不会包含这个方法,这也是触发这个错误的最常见原因。

解决步骤

  1. 检查当前Boto3版本
    先运行以下命令确认你正在使用的Boto3版本:

    pip show boto3
    

    若版本低于1.10.0(该版本开始完整支持EC2 Fleet相关API),就需要进行升级。

  2. 升级Boto3到最新稳定版
    执行升级命令:

    pip install --upgrade boto3
    

    如果你使用了虚拟环境,请确保在对应的虚拟环境中执行该命令,避免影响全局依赖。

  3. 验证升级结果
    再次运行pip show boto3确认版本已更新,之后重新运行你的代码,这个错误应该就会消失了。

额外排查点

  • 确认你没有混淆boto3.client('ec2')和boto3.resource('ec2'):你代码里使用的是client对象,这是正确的——resource对象确实没有describe_fleets方法,但你的代码写法没问题,所以这个可能性很低。
  • 检查AWS区域支持性:虽然大部分主流区域都支持EC2 Fleet,但如果是较新的区域,可确认下是否支持该服务。不过这个问题一般只会触发区域相关的调用错误,不会导致方法不存在。

补充说明:你的代码本身逻辑是正确的,只要Boto3版本达标就能正常运行:

import boto3 # low level ec2 client
client = boto3.client('ec2')
response = client.describe_fleets(
    DryRun=True,
    MaxResults=100,
    FleetIds=[
        'xxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx',
    ]
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:59:42