我可以在 .NET Core Minimal API 中获取 Lambda 别名吗

问题描述 投票:0回答:1

在 AWS API Gateway 中,我有 3 个阶段:Prod、Stage 和 Dev 在我的 AWS Lambda 中,我有 3 个别名:PROD、STAGE、DEV

API Gateway 中的我的 API 资源指向:

my-lambda-name:${stageVariables.lambdaAlias}
,然后我将域映射到每个阶段。

下面是我的 Lambda .NET Core Minimal API

Program.cs
代码。

是否有办法在

Program.cs
中获取阶段变量,以便我可以使用它从参数存储中提取正确的配置?我不相信我可以使用 Lambda 环境变量,因为它们在所有别名中都是相同的。

my-lambda-name:DEV
my-lambda-name:STAGE
my-lambda-name:PROD

global using Microsoft.EntityFrameworkCore;
using System.Text.Json;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddAWSLambdaHosting(LambdaEventSource.RestApi);

// Pull in Configuration
builder.Configuration.AddSystemsManager($"/AppName/{builder.Environment.EnvironmentName}");

var app = builder.Build();

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

app.Run();
amazon-web-services api aws-lambda aws-api-gateway
1个回答
0
投票

我也有同样的问题。 但是,也许我在 https://clearmeasure.com/hosting-dot-net-6-minimal-api-aws-lambda/ 中找到的解决方案可以帮助您。

....
     string arn = string.Empty;
 var lambdaContext = Request.HttpContext.Items[AbstractAspNetCoreFunction.LAMBDA_CONTEXT] as ILambdaContext;
 if (lambdaContext != null) { arn = lambdaContext.InvokedFunctionArn; };
......

我希望这对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.