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

MacOS(x86)本地调用fn-project函数遇500内部错误求助

解决方案

核心问题定位

从日志中的API error (400): You should always set the Memory limit when using Memoryswap limit可以确定,问题出在Docker容器的内存交换限制配置上:fnserver在启动函数子容器时,未正确关联内存限制与内存交换限制,触发了Docker的参数校验错误。

修复步骤

  1. 停止并移除当前运行的fnserver容器

    docker stop fnserver && docker rm fnserver
    
  2. 重新启动fnserver,显式配置内存交换规则(二选一即可)

    • 方案一(推荐本地开发):禁用内存交换
      直接关闭内存交换,避免参数关联问题:
      docker run -d --name fnserver --rm -p 8080:8080 --memory-swap=-1 fnproject/fnserver:latest
      
    • 方案二:明确设置内存与交换限制
      指定内存上限,并配置对应的交换空间(示例为512MB内存+1GB交换):
      docker run -d --name fnserver --rm -p 8080:8080 --memory=512m --memory-swap=1g fnproject/fnserver:latest
      
  3. 重新部署函数并测试

    fn deploy --app example --local
    fn invoke example hello-world
    

补充说明

你的fdk>=0.1.74版本符合要求,无需更新fdk。MacOS x86环境下Docker的默认内存交换配置与fnserver的默认启动参数不兼容,显式配置内存相关参数即可解决容器初始化失败的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:50:53