You need to enable JavaScript to run this app. Azure Function写日志到Table Storage抛10055 StorageException修复咨询
优惠活动
大模型
产品
解决方案
定价
更多

Azure Function写日志到Table Storage抛10055 StorageException修复咨询

Azure Function SocketException 10055 修复方案

该异常本质为函数实例临时TCP端口耗尽,结合堆栈触发自Azure WebJobs内置日志写入Table Storage的流程,可通过以下方案修复:

优化内置日志写入配置

  • 降低Table Storage日志写入级别
    在host.json中修改日志输出级别,减少不必要的日志写入连接:
    {
      "logging": {
        "logLevel": {
          "Default": "Warning",
          "Host.Aggregator": "Warning",
          "Host.Results": "Warning"
        }
      }
    }
    
    原理:默认的运行日志聚合结果会频繁写入Table Storage,高并发下会快速占用临时端口。
  • 切换日志存储目的地
    如果不需要查询Table Storage中的历史运行日志,可直接禁用内置Table Storage日志写入,统一将日志输出到Application Insights:
    {
      "logging": {
        "azureWebJobsStorage": {
          "enabled": false
        },
        "applicationInsights": {
          "enabled": true
        }
      }
    }
    

修复代码端连接复用问题

  • 统一复用客户端实例
    所有对外请求的客户端(包括HttpClient、Blob Storage SDK客户端、Cosmos DB SDK客户端)都改为静态单例持有,不要在每次函数触发执行时新建实例,避免每次请求都新建TCP连接产生大量TIME_WAIT状态套接字:
    // 正确写法:单例持有客户端
    private static readonly HttpClient _blobHttpClient = new HttpClient();
    private static readonly CosmosClient _cosmosClient = new CosmosClient("连接字符串");
    
    // 错误写法:每次执行都新建客户端,会快速耗尽端口
    public async Task Run(QueueTrigger trigger)
    {
        var newHttpClient = new HttpClient();
        var newCosmosClient = new CosmosClient("连接字符串");
    }
    
  • 不要手动禁用SDK的默认连接池机制,不要强制关闭HTTP Keep-Alive

调整系统TCP参数

  • 针对高级计划、ASE等独占模式的函数实例,可在启动脚本中调整TCP配置,缩短TIME_WAIT套接字回收时间、扩大临时端口范围:
    # 允许复用TIME_WAIT状态的端口
    sysctl -w net.ipv4.tcp_tw_reuse=1
    # 扩大可用临时端口范围
    sysctl -w net.ipv4.ip_local_port_range=1024 65000
    

控制并发峰值

  • 在host.json中调低单实例的并发请求上限,避免同时发起过多出站连接:
    {
      "extensions": {
        "http": {
          "maxConcurrentRequests": 20
        },
        "queues": {
          "batchSize": 10
        }
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 14:24:07