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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:43:08