我已经创建了一些使用触发器的Azure Webjobs,并且我刚刚了解了Azure Functions。
据我所知,Azure函数似乎与Azure Webjob功能重叠,我很难理解何时在Function和Webjob之间进行选择:
所以肯定会有价格差异,如果你有一个正在运行的web应用程序,你可以使用它来运行一个web作业,而不需要任何额外的成本,但是如果我没有一个现有的web应用程序,并且我必须编写代码来触发一个队列,我应该使用一个web作业还是一个函数?
当您需要选择时,是否还有其他需要考虑的因素?
发布于 2016-09-15 16:19:26
作为基于Azure开发工具包的WebJobs函数,它们提供了WebJobs中已有的大部分功能,但也提供了一些新的很酷的功能。
就触发器而言,除了那些已经可用于WebJobs的触发器(例如,服务总线、存储队列、存储Blobs、CRON时间表、WebHooks、EventHub和文件云存储提供商)之外,Azure函数还可以作为API触发。HTTP调用不需要kudu凭据,但可以通过Azure AD和第三方身份提供商进行身份验证。
关于输出,唯一的区别是函数在通过HTTP调用时可以返回响应。
它们都支持各种各样的语言,包括: bash (.sh)、batch (.bat / .cmd)、C#、F#、Node.Js、PHP、PowerShell和Python。
作为目前预览中的函数,工具仍然不是很理想。但微软正在努力解决这一问题。希望我们在本地开发和测试函数的灵活性与我们目前使用Visual Studio对WebJobs所做的一样。
函数带来的最显著和最酷的优点是,可以选择使用动态服务计划和“无服务器”模型,在这种模式下,我们不需要管理VM实例或扩展;所有这些都是为我们管理的。此外,由于没有专用实例,我们只为实际使用的资源付费。
这里是两者之间更详细的比较:https://blog.kloud.com.au/2016/09/14/azure-functions-or-webjobs/
HTH :)
发布于 2018-01-17 15:36:19
我想在上面的长篇和有点旧的帖子中再增加两点。如果您在azure functions中选择了消费计划,以下是限制
如果您想要运行超过10分钟的任何作业,请选择webjobs。Azure函数,默认情况下只运行5分钟,如果您的进程超过5分钟,则azure函数抛出超时异常。您可以在host.json中将超时时间增加到10分钟。
注意:如果您使用的是应用服务计划azure功能,则不会出现超时问题。
区别的另一个原因是。如果你使用azure函数,那么你的初始启动时间将会很慢,因为机器(容器)是动态创建的,一旦使用就会销毁。
为了避免冷启动,azure function app发布了付费套餐,其中一个实例将一直运行,根据负载,函数app将开始伸缩,并将根据消耗对一个实例和其他实例进行计费。
发布于 2016-12-15 06:33:18
根据Azure Functions的说法,WebJobs没有的功能如下:
简单地说: Azure函数是较新的动物。如果你还没有App Service计划,我会选择Functions,因为从长远来看,我看不出为什么从WebJobs开始会更好(虽然Functions工具可能还不够稳定)。
https://stackoverflow.com/questions/36610952
复制相似问题