Azure Function App v4 Blob 触发器并发
Azure Function App v4 Blob Trigger Concurrency
过去几天我一直在网上四处寻找,但找不到我的问题的明确答案。
我正在 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.
我会选择基于事件网格的方法。该服务的扩展性非常好。
过去几天我一直在网上四处寻找,但找不到我的问题的明确答案。
我正在 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.
我会选择基于事件网格的方法。该服务的扩展性非常好。