首页 > 解决方案 > 如何测试 Azure 函数可扩展性?

问题描述

由于我们是 Azure Function App 的新手,我们听说它的强大功能之一是可扩展性,但是 azure function scale 是如何工作的呢?它是自动缩小还是我们可以设置的任何机制?例如,规模大小限制的最大值。

当我们在本地调试 azure 函数时(我们已经尝试过ServiceBusTrigger、EventHubTrigger、QueueTrigger 和 CosmosDBTrigger),似乎每次在我们继续发送消息时,同一个函数实例被一遍又一遍地调用,这对于缩放不起作用/正如我们预期的那样并行工作,有什么好的方法可以在本地调试可伸缩性吗?

标签: azureazure-functionsazure-functions-runtimeazure-function-app

解决方案


Azure Functions 的缩放由Scale Controller确定:

秤控制器

Scale Controller 仅在云中运行,因此无法在本地测试缩放。该控制器的内部工作原理也未公开。

测试扩展的最佳方法是在云中实际进行概念验证并确保配置 Application Insights。对函数应用进行负载测试后,您可以执行如下所示的 Log Analytics 查询,以查看是否已预配函数应用的多个实例:

requests | 
project timestamp, id, operation_Id, operation_Name, duration, cloud_RoleName, cloud_RoleInstance | 
where cloud_RoleName =~ 'FUNCTION_APP_NAME' | 
order by timestamp desc | 
take 100

cloud_RoleInstance 属性具有已供应资源的 ID。当该列包含多个值时,您就知道发生了缩放。

日志分析

老实说,测试 Azure Functions 是否自动缩放不应该是你的主要关注点,因为它是 Azure 的责任。您可能需要自动缩放来处理小型和大型工作负载,并且您可能有完成处理的时间限制。如果这是您真正关心的问题,那么您最好测量端到端的性能/时间。


推荐阅读