【问题标题】:Running .NET 6 Web API project in AWS Lambda with ZIP deployment使用 ZIP 部署在 AWS Lambda 中运行 .NET 6 Web API 项目
【发布时间】:2022-02-28 17:06:14
【问题描述】:

我正在尝试在 AWS Lambda 中运行 .NET 6 Core Web API 项目,就像使用 .NET Core 3.1 项目一样

看起来 .NET 6 在 Lambda 中不受官方支持,但运行 .NET 6 可以通过以特定方式发布项目、指定对函数 [provided.al2] 使用自定义运行时并最终部署给拉姆达。我已按照以下教程进行操作,并已成功在 AWS Lambda 中使用 .NET 6 代码运行 C# 代码。

但是,当尝试使用无服务器框架部署完整的 .NET 6 Web API 项目并通过 API Gateway 使用请求调用它时,我在 Lambda 中收到以下错误。我还安装了 NuGet 包:Amazon.Lambda.AspNetCoreServer.Hosting 并在 Program.cs 中注册。

我的假设是这些教程中的发布方法,其中项目是独立的,对于 linux-x64 可以解决问题。使用容器映像似乎可以做到这一点,但我希望在等待原生 .NET 6 支持时使用 ZIP 部署方法与我的一些旧项目保持一致。

https://nodogmablog.bryanhogan.net/2021/11/dotnet-6-custom-runtime-for-aws-lambda/ https://dev.to/memark/running-a-graphql-api-in-net-6-on-aws-lambda-17oc

来自 Amazon.Lambda.Templates 的 Lambda ASP.NET Core Web API 选项会生成 3.1 应用程序。

【问题讨论】:

    标签: c# amazon-web-services aws-lambda


    【解决方案1】:

    自今天(2022 年 2 月 24 日)起,AWS Lambda 支持 .NET 6 作为托管运行时和容器基础映像。

    要使用 .NET 6 构建和部署 Lambda 函数,请使用 .NET Core CLI、AWS Toolkit for Visual Studio 或 AWS 无服务器应用程序模型 (AWS SAM)。此外,您还可以使用 AWS 提供的 .NET 6 基础镜像,通过容器镜像构建和部署 .NET 6 功能。

    见公告here

    有关 Lambda 对 .NET 6 的支持的更多信息,请参阅.NET 6 runtime now available in AWS Lambda. 的博客文章

    【讨论】:

    • 我只需要再等 1 天就可以提出我的问题,然后我就不需要了!
    【解决方案2】:

    编辑 28/02/2022:

    AWS Lambda 的 .NET 6 运行时支持现已推出:Introducing the .NET 6 runtime for AWS Lambda


    来自亚马逊 (full article) 的一些建议:

    要在 Lambda 上立即开始使用 .NET 6,有一些选择:

    • 托管基础容器映像 - 从 ECR 公共库中提取或使用 AWS Toolkit for Visual Studio 中的 .NET 6 容器映像蓝图。
    • 自定义容器映像 - 构建一个容器映像,其中包含 .NET 6 应用程序。此 PowerShell 脚本将构建一个 .NET 6 基础容器映像。
    • 自定义运行时 - 自定义运行时将所有必需的 .NET 6 库捆绑在部署到 Lambda 的 zip 文件存档中,请参阅此示例。对于 ARM64,请参阅此示例。

    .NET 6 的托管实例应该会在不久的将来推出。

    【讨论】:

      猜你喜欢
      • 2021-08-08
      • 1970-01-01
      • 2022-12-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      相关资源
      最近更新 更多