可以将.NET Core Web API 发布到Azure Functions吗?

3
我最近从一家使用AWS的公司转到了一家使用Azure的公司,两者都使用Dotnet。AWS发布了Amazon.Lambda.AspNetCoreServer,这是一个神奇的Nuget包,允许您编写一个普通的ASP.NET Core Web API并仅通过几行配置将其部署为lambda。我真的很喜欢这种模式,因为它允许开发人员只编写普通的web api,而不必让主机运行时泄漏到他们的编码中。

在Azure中是否存在类似的东西?甚至有社区支持的东西吗?还是有某种方法可以在Azure Functions中实现类似的功能?

1个回答

5

很遗憾,由于Azure函数的格式有些不同,所以没有简单的方法来完成这个任务。

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

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

如果您希望在没有任何更改的情况下托管纯.NET Core,请考虑容器选项。

PS0:理论上可以通过一点反射来实现。例如,您创建一个具有所有Asp.Net核心API的项目,您可以在Asp.net核心托管中使用它们。然后,您编写工具,获取您的dll并使用反射查找控制器中的所有操作,并为AF生成代码。

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


即使我将函数部署在容器中,它仍然必须编码为函数应用程序。如果我想构建纯的.NET Core,似乎我将不得不使用另一个主机。 - Mike Pennington
@MikePennington 我是指将其部署到普通的 Asp.Net Core 容器,而不是 AF。 - Vova Bilyachat
@MikePennington 我在睡觉后更新了我的问题,得到了灵感 :) 但这需要一些编码 ;) - Vova Bilyachat
2
你的 PS1 答案正是我在寻找的! - Mike Pennington

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接