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

如何使用AWS Lambda函数URL访问ASP.NET Core 6 Web API(替代API Gateway)

用AWS Lambda函数URL替代API Gateway访问ASP.NET Core 6 Web API

前置条件

  • 已安装AWS Toolkit for Visual Studio或AWS CLI
  • 拥有ASP.NET Core 6 Web API项目,且已集成AWS Lambda支持
  • AWS账号具备Lambda和IAM资源操作权限

1. 适配ASP.NET Core项目以支持Lambda

确保项目引用Amazon.Lambda.AspNetCoreServer NuGet包,修改Program.cs添加Lambda托管支持:

var builder = WebApplication.CreateBuilder(args);

// 常规API服务配置
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

// 启用Lambda HTTP API托管
builder.Services.AddAWSLambdaHosting(LambdaEventSource.HttpApi);

var app = builder.Build();

// 中间件配置(按需启用Swagger、HTTPS重定向等)
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();

app.Run();

2. 部署Lambda函数

方式一:Visual Studio工具包

右键项目 → Publish to AWS Lambda,按照向导配置函数名称、执行IAM角色,完成部署。

方式二:AWS CLI

先打包发布产物,再创建Lambda函数:

# 发布项目到本地目录
dotnet publish -c Release -o ./publish
# 打包为zip文件
zip -r lambda-api-package.zip ./publish
# 创建Lambda函数(替换占位符为你的AWS账号ID和角色ARN)
aws lambda create-function \
  --function-name AspNetCoreWebApiLambda \
  --runtime dotnet6 \
  --role arn:aws:iam::YOUR_ACCOUNT_ID:role/LambdaExecutionRole \
  --handler YourApiProjectName::YourApiProjectName.LambdaEntryPoint::FunctionHandlerAsync \
  --zip-file fileb://lambda-api-package.zip

3. 启用并配置Lambda函数URL

  1. 登录AWS Lambda控制台,找到已部署的函数。
  2. 切换到Configuration → Function URL,点击Create function URL。
  3. 配置认证类型:
    • 选择NONE:公开访问(注意安全风险)
    • 选择AWS_IAM:仅允许携带有效AWS签名的请求访问
  4. 点击Save,系统会生成一个类似https://abc123.lambda-url.us-east-1.on.aws/的函数URL。

4. 测试API访问

直接使用函数URL拼接API路由即可访问:

  • GET示例:curl https://abc123.lambda-url.us-east-1.on.aws/api/weatherforecast
  • POST示例:用Postman发送POST请求到https://abc123.lambda-url.us-east-1.on.aws/api/users,携带请求体。

核心优势与注意事项

  • 超时扩展:Lambda函数可配置最长**15分钟(900秒)**超时,彻底解决API Gateway的30秒限制问题。
  • 成本优化:函数URL按请求次数和执行时长计费,低流量场景下成本通常低于API Gateway。
  • CORS配置:在Function URL设置中可自定义CORS规则,允许指定的源、请求头和HTTP方法。
  • 监控与日志:通过CloudWatch查看函数执行日志、错误率、调用指标,排查问题更便捷。
  • 安全考量:公开访问(NONE认证)需确保API本身有授权机制;使用AWS_IAM认证时,请求需携带正确的AWS签名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:32:44