Azure Blob Trigger函数多blob上传仅运行单实例问题咨询
Blob触发Python函数并行处理失效遗漏配置排查
- 调整
FUNCTIONS_WORKER_PROCESS_COUNT应用配置:Python函数运行时默认每个实例仅启动1个工作进程,所有请求会串行在这个进程中处理,你需要在函数应用的应用配置中将这个参数的值改为和你预期的并行数匹配的数值,最大值支持到10。 - 修正host.json的配置数据类型:你当前配置中
maxDegreeOfParallelism的值为字符串类型的"4",该配置要求传入数字类型,去掉引号改为4才会生效,正确配置参考:
{ "version": "2.0", "extensions": { "blobs": { "maxDegreeOfParallelism": 4 } } }
- 检查实例伸缩限制配置:如果你需要多实例并行处理,确认没有将应用配置
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT设为1,消费计划下该配置默认无强制单实例限制,允许自动扩容到最多200个实例。 - 切换为事件网格模式的Blob触发器:旧版Blob触发器基于存储队列轮询实现,同一个虚拟目录下的Blob会被归到同一个分区串行处理,切换为基于事件网格的新版Blob触发器可以消除分区限制,提升并行处理能力。
- 排查代码层面的串行逻辑:如果你的代码中存在全局互斥锁、未使用连接池的单例共享资源(如独占数据库连接),会导致即使进程配置正确,实际业务逻辑还是串行执行。
内容的提问来源于stack exchange,提问作者Srini V
相关产品推荐
相关产品推荐

