Linux环境下Azure Queue触发Function频繁超时问题求助
Linux版Azure Queue触发函数大量消息进入死信队列(超时问题)
我有一个由Queue触发的Linux版Azure Function,绝大多数待处理消息最终都进入了死信队列(poison queue),日志里仅能看到超时相关信息。
日志信息
2023-06-12 20:00:14.132 Executing 'Functions.Drone' (Reason='New queue message detected on 'drone-input-queue'.', Id=6e66d069-0b09-4966-92dd-d63a8f9aa3fc) Information 2023-06-12 20:00:14.133 Trigger Details: MessageId: 3c54e04a-3d96-4ab9-ab69-3101f77a16f1, DequeueCount: 1, InsertionTime: 2023-06-12T20:00:10.000+00:00 Information 2023-06-12 20:10:14.133 Timeout value of 00:10:00 exceeded by function 'Functions.Drone' (Id: '6e66d069-0b09-4966-92dd-d63a8f9aa3fc'). Initiating cancellation. Error 2023-06-12 20:10:14.133 Executed '{functionName}' ({status}, Id={invocationId}, Duration={executionDuration}ms) Error 2023-06-12 20:10:14.133 Executed 'Functions.Drone' (Failed, Id=6e66d069-0b09-4966-92dd-d63a8f9aa3fc, Duration=600000ms) Error 2023-06-12 20:10:14.133 Error
相关信息
- Function App使用Consumption计划,即便消息每隔几分钟传入,仍有90%的情况出现超时;
- Function App和Queue通过ARM模板创建,Function后续从归档包部署;
- 基于Linux系统,运行Java代码;
- 偶尔能正常执行,说明AzureWebJobsStorage等连接字符串配置正确;
- 已多次核对host.json和function.json配置;
- 最初使用旧版CLI部署,更新CLI后问题仍未解决;
- 怀疑与缩放配置有关,但不知如何调整,寻求建议。
补充细节
- 函数入口代码执行甚至无法完成
logger.setContext步骤; - 单次处理仅需30秒的消息也会超时;
- 批量发送10条消息时,仅第一条能正常执行,其余9条全部超时;
- 此为该Function App中唯一的Function。
入口代码片段
@FunctionName("Drone") public void run(@QueueTrigger(name = "message", queueName = "drone-input-queue") String message, @QueueOutput(name = "output", queueName = "drone-output-queue") OutputBinding<String> output, final ExecutionContext context) { String id = UUID.randomUUID().toString(); logger.setContext(context); //自定义工具,用于向上下文日志和/或Blob记录日志 logger.info("["+id+"] Start"); encryption = initializeInFlightEncryptionClient(logger); logger.info("["+id+"] encryption initialized"); jsonSigner = initializeJsonSigningUtility(logger); logger.info("["+id+"] jsonSigner initialized"); try { // ... 消息处理逻辑 ... } catch(Exception e) { logger.severe("ERROR: "+e.getMessage(), e); } finally { logger.closeLogFile(); } }
内容的提问来源于stack exchange,提问作者schurterb
相关产品推荐
相关产品推荐

