【问题标题】:Using Custom AWS Lambda Runtimes with asp.net core将自定义 AWS Lambda 运行时与 asp.net 核心结合使用
【发布时间】:2019-04-19 22:53:37
【问题描述】:

最近亚马逊宣布支持自定义 .net 核心运行时:https://aws.amazon.com/blogs/developer/announcing-amazon-lambda-runtimesupport/

我当前的 aws lambda 项目是使用 .NET Core 2.1 编写的 C#; 2.2 尚不支持,因此我想使用自定义运行时。

但是,为了使用自定义运行时,似乎需要使用LambdaBootstrap。 从文档中我不清楚是否可以将它与 asp.net 核心一起使用: https://github.com/aws/aws-lambda-dotnet/tree/master/Libraries/src/Amazon.Lambda.RuntimeSupport

附言目前我的 aws lambda 正在使用 asp.net core 进行身份验证和其他

【问题讨论】:

  • 您是在谈论与 lamda 并行运行 webapp 吗?如果是这样,肯定有办法考虑将 asp.net 核心作为控制台应用程序运行,但不明白为什么要这样做
  • 谢谢;我编辑了我的问题以澄清我的情况:我当前的 aws lambda 项目是使用 .NET Core 2.1 编写的 C#; 2.2 尚不支持,因此我想使用自定义运行时。

标签: c# amazon-web-services asp.net-core .net-core aws-lambda


【解决方案1】:

这是一个很好的演示/教程,展示了作者如何使用 lambda 引导程序:

https://medium.com/@dimoss/asp-net-core-2-2-3-0-serverless-web-apis-in-aws-lambda-with-a-custom-runtime-and-lambda-warmer-ce19ce2e2c74

作者使用以下代码在本地调试和lambda入口之间切换:

public class LocalEntryPoint
{
    private static readonly LambdaEntryPoint LambdaEntryPoint = new LambdaEntryPoint();
    private static readonly Func<APIGatewayProxyRequest, ILambdaContext, Task<APIGatewayProxyResponse>> Func = LambdaEntryPoint.FunctionHandlerAsync;

    public static async Task Main(string[] args)
    {
#if DEBUG
        BuildWebHost(args).Run();
#else
        // Wrap the FunctionHandler method in a form that LambdaBootstrap can work with.
        using (var handlerWrapper = HandlerWrapper.GetHandlerWrapper(Func, new JsonSerializer()))

        // Instantiate a LambdaBootstrap and run it.
        // It will wait for invocations from AWS Lambda and call the handler function for each one.
        using (var bootstrap = new LambdaBootstrap(handlerWrapper))
        {
            await bootstrap.RunAsync();
        }
#endif
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-09
    • 2017-04-19
    • 1970-01-01
    • 2021-07-07
    • 2011-09-16
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多