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

AWS Lambda代理集成中如何移除请求路径中的前缀资源

解决方案

方案1:修改ASP.NET Core Lambda启动配置(推荐,改造成本最低)

AWS官方的Amazon.Lambda.AspNetCoreServer运行时原生支持路径前缀剥离,你只需要修改项目中的LambdaEntryPoint类,重写Init方法添加UsePathBase配置即可:

protected override void Init(IWebHostBuilder builder)
{
    builder
        .UsePathBase("/first") // 自动剥离请求路径中的/first前缀
        .UseStartup<Startup>();
}

如果不想用AWS运行时自带的能力,也可以用ASP.NET Core原生的重写中间件,在Startup.cs的Configure方法最开头添加如下代码:

using Microsoft.AspNetCore.Rewrite;

var rewriteOptions = new RewriteOptions()
    .AddRewrite(@"^first/(.*)", "$1", skipRemainingRules: true);
app.UseRewriter(rewriteOptions);

以上两种方式都不需要修改API Gateway的任何配置,改完重新部署Lambda即可生效。

方案2:调整API Gateway集成配置

如果不愿意修改Lambda代码,也可以通过修改API Gateway的集成规则解决问题:

  • 如果你用的是REST API类型的API Gateway:将原来的Lambda代理集成更换为普通Lambda集成,普通集成支持自定义请求映射模板,你可以手动构造传入Lambda的事件结构,将path字段值设置为"/$input.params('proxy')",即可把前缀去掉后再传给Lambda。
  • 如果你用的是HTTP API类型的API Gateway:可以直接在Lambda代理集成的参数重写配置里,将请求路径重写为/$request.path.proxy,无需更换集成类型即可自动剥离前缀。

两种方案任选其一即可解决路由404的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 19:54:04