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

求助:使用CDK实现API Gateway仅将/uploads路由至Lambda函数

问题解决:仅将/uploads路径路由到指定Lambda函数

你的问题出在使用了 LambdaRestApi 构造函数,它默认会把传入的Lambda设置为API的全局处理程序,即使关闭代理模式也会影响路由配置。正确的做法是创建普通的 RestApi,然后只为 /uploads 路径添加Lambda集成。

修正后的代码如下:

const s3UploaderUrlLambda = new lambda.Function(
  // 你的Lambda函数定义
);

// 创建普通RestApi,而非LambdaRestApi
const api = new apigateway.RestApi(this, 's3uploader', {
  restApiName: 'S3 Uploader API',
  description: '仅处理/uploads路径的API'
});

// 添加/uploads资源
const uploadsResource = api.root.addResource('uploads');

// 为GET方法添加Lambda集成
const lambdaIntegration = new apigateway.LambdaIntegration(s3UploaderUrlLambda);
uploadsResource.addMethod('GET', lambdaIntegration);

关键改动说明:

  • 替换 LambdaRestApi 为 RestApi:避免默认全局绑定Lambda函数
  • 手动创建 LambdaIntegration:明确指定该集成仅用于/uploads路径的GET方法
  • 移除原 handler 参数:普通RestApi不需要全局处理程序

这样配置后,只有访问 /uploads 的GET请求才会触发你的Lambda函数,其他路径会返回404错误,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:55:20