选择“ azure函数”相对于“ http请求”动作有性能上的好处吗?

时间:2019-03-18 17:52:14

标签: azure-functions azure-logic-apps

选择azure functionhttp request操作是否有性能优势?

似乎有两种方法可以在您的逻辑应用程序中添加azure函数。

第一种方法是简单地触发Http Request

enter image description here

或者,我们可以选择Azure function作为操作:

enter image description here

选择azure functionhttp request操作是否有性能优势?

3 个答案:

答案 0 :(得分:5)

无法控制调用 azure functions 的速度以及它们的性能与所选计划有关。 MSDN's Understanding Serverless Cold Startthis blog post解释了在调用azure函数时有2到10秒的开销,这些开销最近没有被调用过。启动时间取决于所编写的语言及其依赖项。使用专用计划运行天蓝色功能可以避免此问题。

http request 仅具有进行HTTP调用的缺点。在调用API且不需要大量处理响应时,此操作比较可取。

应避免通过使用 azure function 的API调用 http request ,因为这会产生两次操作的费用。直接选择时,大概不会通过简单的HTTP调用azure函数。

答案 1 :(得分:3)

您可以仅将作为Webhook的azure函数视为HTTP请求的更特定版本。主要区别在于WebHooks通常配置为仅响应POST请求,因为HTTP请求可以与所有REST动词一起使用。

与以下内容相关的链接

https://www.vainolo.com/2018/10/22/azure-functions-part-3-handling-http-query-get-and-post-requests/

答案 2 :(得分:3)

当我们谈论 Azure Function 的效果时,我们必须在以下问题的背景下进行讨论:CPU / memory的高消费, port / outbound_socket的消费,spawned_threads / pending requests的数量,等等。

您需要牢记一件事 :开发人员在创建功能应用程序时应牢记从Consumption Plan迁移到函数创建完成后,App Service Plan(反之亦然)是不可能的。但是,如果他删除Function应用程序并在其他类型的托管计划上重新创建它,则出于显而易见的原因,这是可能的。开发人员应设计一种功能应用程序,避免执行繁重的任务,这会占用大量CPU和内存,产生大量线程,打开大量出站套接字连接等。

用于提高Azure功能性能的best practises

  • 避免长时间运行的功能
  • 使用存储队列进行跨功能通信
  • 将函数编写为无状态
  • 编写防御功能
  • 尽可能重用与外部资源的连接
  • 使用异步代码并避免阻止调用
  

一旦应用程序使用率超过了这些限制,消息的处理速度就会降低,然后规模控制器会添加一个新的计算机实例,并分配负载以保持处理速度。但是,添加新实例大约需要大约10秒,然后才开始事件的负载平衡。但是,添加新实例后,处理速度会加快,并且在20-30分钟之内,将解决高负载( 10,000个请求)。

Conclusion:Azure Functions的性能取决于多种因素

希望这会有所帮助。