Azure ML Batch端点REST API请求限制与429报错解决方案
Azure ML Batch端点调用429报错问题
问题现象
- 应用向Azure Machine Learning REST API发送请求调用batch endpoint启动批量评分作业,低请求量场景下运行正常。
- 当应用发起大量并发请求时,API偶发返回
429 TooManyRequests状态码,返回提示为:Received too many requests in a short amount of time. Retry again after 1 seconds.,即短时间内请求量超出限制,需等待1秒后重试,例如单次发送77个请求时就会触发该报错。 - 初步优化思路为对出站请求做限流,保证并发请求数不超过API阈值,但查阅官方公开配额文档时,仅能找到托管在线端点(Managed online endpoints)的相关配额规则,未查询到Batch endpoints对应的明确请求限制标准,无法确定合理的限流阈值。
解决方案(2022年6月20日更新)
经确认,Azure官方未对外公开Batch endpoints明确的并发请求数阈值,多轮实测验证显示,将出站并发请求数限制为10即可完全解决该
429报错。
- 若技术栈为.NET Core,可使用
SemaphoreSlim实现并发请求限流,核心逻辑为控制同时发起的出站HTTP请求数量不超过设定阈值即可。
内容的提问来源于stack exchange,提问作者Rashid Kashafutdinov
相关产品推荐
相关产品推荐

