azure - 如何测试 Azure 函数可扩展性?
问题描述
由于我们是 Azure Function App 的新手,我们听说它的强大功能之一是可扩展性,但是 azure function scale 是如何工作的呢?它是自动缩小还是我们可以设置的任何机制?例如,规模大小限制的最大值。
当我们在本地调试 azure 函数时(我们已经尝试过ServiceBusTrigger、EventHubTrigger、QueueTrigger 和 CosmosDBTrigger),似乎每次在我们继续发送消息时,同一个函数实例被一遍又一遍地调用,这对于缩放不起作用/正如我们预期的那样并行工作,有什么好的方法可以在本地调试可伸缩性吗?
解决方案
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 的责任。您可能需要自动缩放来处理小型和大型工作负载,并且您可能有完成处理的时间限制。如果这是您真正关心的问题,那么您最好测量端到端的性能/时间。
推荐阅读
- python - Windows powershell 上的烧瓶
- hl7-fhir - HAPI FHIR 中搜索参数“_profile”的使用
- webpack - 如何在 webpack 中使用文件加载器
- javascript - 如何将cloudinary图像同步转换为base64 img?
- css - CSS翻转卡-如何使正面小于背面
- javascript - 检查列表的所有项目是否都是整数字符串
- ruby-on-rails - 如何从目录外执行 docker compose?
- maps - 使用 Mapbox 进行地理编码
- html - CSS在悬停时放大网格图像,但将其周围的所有其他图像移开
- javascript - 使用反应、样式化组件等重新创建具有 n 行和列的动态 css 网格/flexbox 图像库