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

Azure Function运行Service Bus Topic触发器报c_uamqp导入错误

你遇到的MaxDeliveryCountExceeded死信是函数启动时依赖导入失败导致的:消息多次投递到函数,都因为依赖加载失败没有被正常消费确认,超过Service Bus设置的最大投递次数后进入死信队列,依赖问题修复后该问题会自动消失。

根因:uamqp是C语言编译实现的扩展包,跨环境兼容性差,你遇到的cannot import name 'c_uamqp'报错是因为流水线安装的uamqp二进制包和Azure Function Linux运行环境不匹配

修复步骤:

  • 首先移除requirements.txt中单独声明的uamqp依赖:azure-servicebus包本身已经内置了对应版本的uamqp依赖,手动额外声明uamqp会触发版本冲突,拉取与azure-servicebus不兼容的版本。
  • 升级azure-servicebus到最新稳定版(建议7.10.0及以上),你当前使用的7.0.0版本属于早期发行版,存在多个uamqp兼容已知问题。
  • 检查Azure Function运行时的Python版本:uamqp 1.4.3暂不支持Python 3.11及以上版本,如果你的运行时版本为3.11,降级到Python 3.9/3.8即可解决。
  • 调整部署流水线的依赖安装命令,强制拉取兼容Azure Linux运行环境的预编译包,避免流水线本地编译的二进制包不兼容:
pip install --platform manylinux2014_x86_64 --only-binary=:all: --target=<你的依赖安装路径> -r requirements.txt
  • 优化业务代码冗余逻辑:你当前的函数已经配置了Service Bus Topic触发器,函数被触发时入参message就是TOPIC_A推送过来的单条消息,不需要在代码中再主动创建Receiver重复拉取TOPIC_A的消息,删掉这部分重复拉取逻辑,避免消费逻辑冲突导致的消息异常投递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:39:01