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

如何手动测试Python中Azure Cosmos SDK异常及代码故障场景

手动触发Cosmos DB创建用户代码中的各类异常方法

针对你提供的Python代码,以下是强制触发不同故障场景异常的具体操作:

1. 触发AzureMissingResourceHttpError

这个异常通常在目标容器/数据库不存在时抛出,操作方式:

  • 修改代码中container的指向,改成一个未在Cosmos DB中创建的容器名称,或者故意写错数据库名称
  • 调用resolve_createUser函数,此时create_item会因找不到资源抛出该异常

2. 触发主键重复异常(CosmosResourceExistsError)

Cosmos DB中id+分区键组合是唯一约束,操作方式:

  • 用同一组userDisplayName和userPhoneNumber参数重复调用resolve_createUser函数
  • 第二次调用时,会抛出资源已存在的异常(注:你的代码目前未捕获该异常,可考虑补充处理逻辑)

3. 触发网络连接故障异常

模拟无法连接Cosmos DB服务的场景:

  • 直接断开测试机器的网络
  • 或者修改Cosmos DB的连接字符串,故意写错账户名称、密钥或端点地址
  • 调用函数时会抛出连接超时或无法访问服务的相关异常

4. 触发权限不足异常

模拟无写入权限的场景:

  • 将连接字符串中的密钥替换为仅拥有读取权限的密钥(在Azure门户的Cosmos DB账户密钥页生成只读密钥)
  • 或者在Cosmos DB权限设置中,给当前访问主体移除容器的写入权限
  • 调用create_item时会返回403状态码的权限不足异常

5. 触发限流(429)异常

模拟RU配额耗尽的场景:

  • 短时间内高频次调用resolve_createUser函数(比如用循环批量调用)
  • 当请求量超过容器配置的RU上限时,会触发429限流异常(若SDK开启自动重试,可先关闭重试配置以直接捕获异常)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 22:55:06