You need to enable JavaScript to run this app. 基于.NET 5 Web API的AWS Lambda容器用RIE本地测试报错求助
优惠活动
大模型
产品
解决方案
定价
更多

基于.NET 5 Web API的AWS Lambda容器用RIE本地测试报错求助

问题核心原因

该报错由Windows环境下Git Bash的路径自动转换机制导致,和Docker配置、Lambda基础镜像、RIE文件本身的完整性无关。
具体触发逻辑:
在Git Bash中执行docker run命令时,Git Bash会默认对传入的类Unix格式路径参数做自动格式转换,将原本指向本地RIE存储目录的挂载路径~/.aws-lambda-rie,错误替换为Git程序安装目录下的不存在路径。从报错信息中可以看到,最终容器尝试加载的路径是C:/Users/diego.martin/AppData/Local/Programs/Git/aws-lambda/aws-lambda-rie,完全偏离了RIE文件的实际存储位置,因此触发“文件不存在”的启动失败错误。
此外,本地RIE文件的当前权限为-rw-r--r--,缺少可执行权限,也是启动失败的潜在诱因。

操作修复步骤
  • 关闭当前Git Bash会话的路径自动转换机制,防止参数被篡改,执行命令:
    export MSYS_NO_PATHCONV=1
    
  • 为本地存储的RIE文件补充可执行权限,执行命令:
    chmod +x ~/.aws-lambda-rie/aws-lambda-rie
    
  • 调整挂载命令中的本地路径写法,使用适配Git Bash的绝对路径格式,重新执行容器启动命令:
    docker run -d -v /c/Users/diego.martin/.aws-lambda-rie:/aws-lambda -p 9000:8080 --entrypoint /aws-lambda/aws-lambda-rie lambda-dotnet:latest
    
  • 等待容器状态转为正常运行后,执行原计划的函数调用测试命令即可完成验证:
    curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}'
    
补充注意事项

如果使用PowerShell环境执行上述docker命令,无需配置MSYS_NO_PATHCONV=1参数,直接将挂载部分的本地路径替换为Windows原生格式(例如C:/Users/diego.martin/.aws-lambda-rie:/aws-lambda)即可,不会出现路径被自动篡改的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 07:36:08