过去几天我一直在网上查找,但找不到我的问题的明确答案。
我正在 Azure 中构建一个企业级解决方案,相当简单,有两个函数应用程序,一个用于处理将 CSV 文件上传到 blob 存储并回复 200 OK 响应。这工作得很好,并且可以扩展到通过我们的应用程序网关传入的并发请求的愚蠢数量。
还有第二个函数应用程序,然后使用 Blob 触发器开始从 Blob 存储中选取 CSV 文件并对其进行处理,准备将其插入 SQL 中。这是我正在努力理解微软指导的真正含义的解决方案的一部分。例如,如果我们同时收到 100 个 csv 文件,理想情况下,我希望此函数应用程序拾取尽可能多的文件并进行处理,它们都可以同时处理,因为任何 CSV 数据之间都没有依赖性。
我现在看到的可能是一次处理 6-8 个,该函数应用程序是基于消耗的应用程序,并且它的并发级别似乎比基于高级计划的函数应用程序更高。我在 Azure 中进行的测试。所以我想我可能错过了一些东西。如果有人以前处理过这个特定的场景,并且对设置或配置有一些建议,我可以调整或调整以获得所需的缩放级别,那么我将非常感激。
最佳答案
我不会使用 blob 触发的 azure 函数,因为它涉及轮询以确定要处理的 blob。来自 the docs :
If you require faster or more reliable blob processing, consider creating a queue message when you create the blob. Then use a queue trigger instead of a blob trigger to process the blob. Another option is to use Event Grid; see the tutorial Automate resizing uploaded images using Event Grid.
我会选择基于事件网格的方法。该服务的扩展性非常好。
关于c# - Azure Function App v4 Blob 触发器并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71703828/