首页 > 解决方案 > 是否可以将 .net 核心 web api 发布到 azure 函数?

问题描述

我最近将工作从 AWS 商店转到了 Azure 商店,两者都使用 dotnet。AWS 发布了Amazon.Lambda.AspNetCoreServer,这是一个神奇的 Nuget 包,它允许您编写一个普通的 ASP.NET 核心 Web API 并将其部署为一个 lambda,只需在 config 上几行。我真的很喜欢这种模式,因为它允许开发人员编写一个普通的 web api,而不会让主机运行时泄漏到他们的编码中。

Azure 中是否存在类似的东西?甚至是社区支持的东西?或者有什么方法可以在 Azure Functions 中实现类似的功能?

标签: azure.net-coreaws-lambdaazure-functionsasp.net-core-webapi

解决方案


不幸的是,没有简单的方法可以做到这一点,因为 Azure 函数格式有点不同。

[FunctionName(nameof(GetAll))]
public IActionResult GetAll([HttpTrigger("get", Route = "entity")]HttpRequest request)

然后它将为 AF 生成带有元数据的 json。

如果您希望托管纯 .net 核心而不进行任何更改,我会查看 Containers 选项

PS0:理论上可以通过一点点反思来做到这一点。例如,您使用所有 Asp.Net 核心 api 创建项目,您可以在 asp.net 核心托管中使用它们。然后你编写工具来抓取你的 dll 并使用反射你在你的控制器中找到所有的动作并为 AF 生成代码

PS1:看看 https://github.com/tntwist/NL.Serverless.AspNetCore


推荐阅读