运行 .NET 6 Web API AWS Lambda 中的 ZIP 部署项目
Running .NET 6 Web API project in AWS Lambda with ZIP deployment
我正在尝试 运行 AWS Lambda 中的 .NET 6 Core Web API 项目,就像我在 .NET Core 3.1 项目中所做的那样
Lambda 似乎未正式支持 .NET 6,但可以通过以特定方式发布项目并指定使用自定义 运行 来 运行ning .NET 6函数 [provided.al2] 的时间到了,最后部署到 Lambda。我遵循了如下教程,并在 AWS Lambda 中成功地使用 .NET 6 代码 运行ning C# 代码。
但是,当尝试使用无服务器框架部署完整的 .NET 6 Web API 项目并通过 API 网关通过请求调用它时,我在 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 应用程序。
编辑 28/02/2022:
现已支持 AWS Lambda 的 .NET 6 运行时:Introducing the .NET 6 runtime for AWS Lambda
来自亚马逊的一些推荐 (full article):
要在 Lambda 上立即开始使用 .NET 6,有一些选项:
- 托管基础容器映像 - 从 ECR Public 库中提取或使用 AWS 工具包中的 .NET 6 容器映像蓝图 Visual Studio。
- 自定义容器镜像 - 构建容器镜像,其中打包了 .NET 6 应用程序。此 PowerShell 脚本将构建 .NET 6 基础容器映像。
- 自定义运行时 - 自定义运行时将所有必需的 .NET 6 库捆绑在部署到 Lambda 的 zip 文件存档中,请参阅此示例。对于 ARM64,请参阅此示例。
带有 .NET 6 的托管实例应该在不久的将来可用。
自今天(2022 年 2 月 24 日)起,AWS Lambda 支持 .NET 6 作为托管运行时和容器基础映像。
要使用 .NET 6 构建和部署 Lambda 函数,请使用 .NET Core CLI、适用于 Visual Studio 的 AWS 工具包或 AWS 无服务器应用程序模型 (AWS SAM)。此外,您还可以使用 AWS-provided .NET 6 基础映像通过容器映像构建和部署 .NET 6 函数。
查看公告here
有关 Lambda 对 .NET 6 的支持的更多信息,请参阅博客 post .NET 6 runtime now available in AWS Lambda.
我正在尝试 运行 AWS Lambda 中的 .NET 6 Core Web API 项目,就像我在 .NET Core 3.1 项目中所做的那样
Lambda 似乎未正式支持 .NET 6,但可以通过以特定方式发布项目并指定使用自定义 运行 来 运行ning .NET 6函数 [provided.al2] 的时间到了,最后部署到 Lambda。我遵循了如下教程,并在 AWS Lambda 中成功地使用 .NET 6 代码 运行ning C# 代码。
但是,当尝试使用无服务器框架部署完整的 .NET 6 Web API 项目并通过 API 网关通过请求调用它时,我在 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 应用程序。
编辑 28/02/2022:
现已支持 AWS Lambda 的 .NET 6 运行时:Introducing the .NET 6 runtime for AWS Lambda
来自亚马逊的一些推荐 (full article):
要在 Lambda 上立即开始使用 .NET 6,有一些选项:
- 托管基础容器映像 - 从 ECR Public 库中提取或使用 AWS 工具包中的 .NET 6 容器映像蓝图 Visual Studio。
- 自定义容器镜像 - 构建容器镜像,其中打包了 .NET 6 应用程序。此 PowerShell 脚本将构建 .NET 6 基础容器映像。
- 自定义运行时 - 自定义运行时将所有必需的 .NET 6 库捆绑在部署到 Lambda 的 zip 文件存档中,请参阅此示例。对于 ARM64,请参阅此示例。
带有 .NET 6 的托管实例应该在不久的将来可用。
自今天(2022 年 2 月 24 日)起,AWS Lambda 支持 .NET 6 作为托管运行时和容器基础映像。
要使用 .NET 6 构建和部署 Lambda 函数,请使用 .NET Core CLI、适用于 Visual Studio 的 AWS 工具包或 AWS 无服务器应用程序模型 (AWS SAM)。此外,您还可以使用 AWS-provided .NET 6 基础映像通过容器映像构建和部署 .NET 6 函数。
查看公告here
有关 Lambda 对 .NET 6 的支持的更多信息,请参阅博客 post .NET 6 runtime now available in AWS Lambda.