azure - 如何确保一次只运行一个 Azure Function BlobTrigger?
问题描述
我有一个在 Azure Functions 中实现多个 BlobTriggers 的用例(使用 Linux 消耗计划)。例如,在 Azure 存储中,我将有 5 个不同的客户端,其目录结构如下:
client1/file.txt
client2.file.txt
client3/file.txt
client4/file.txt
client5/file.txt
在 Azure 存储中,两者client1/file.txt
和可能同时client2/file.txt
被丢弃。为了防止竞争条件和超过 1.5 GB 内存限制,我希望 BlobTrigger forclient1/file.txt
等待 BlobTrigger forclient2/file.txt
完成,反之亦然(这里的顺序无关紧要,只是它们最终都会执行)。
我必须单独设置队列进程吗?我可以使用预览设置WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
轻松实现这一点吗?
编辑:使用持久功能会是更好的解决方案吗?
解决方案
您应该能够通过确保将 MAX SCALE OUT 值设置为 1 来做到这一点,这样它一次只会处理 1 个文件。您还可以将消费\定价模型从消费更改为应用服务计划一。通过这种方式,您可以使用所需的层,然后您也可以获得更多可用内存(取决于您选择的层)。
推荐阅读
- amcharts - AmCharts 4:显示单个集群的集群和堆叠图表的总数
- javascript - Javascript。从复选框值构建字符串并按 id 过滤
- azure - Azure Kubernetes - 使用环境变量覆盖配置映射值?
- sql - 在 Oracle 中更新联合查询
- c# - 将内容复制到流时出现 HttpRequestException 错误(Cloudinary 上传)
- windows - 从 Windows 中的浏览器打开外部应用程序(来自 mediawiki 页面)
- ios - 如何在 SwiftUI 中更改 ProgressView 口音颜色?
- iis - 托管在本地 IIS 上的 mvc 应用程序被重定向到本地主机
- r - 在返回多个表的函数上应用 rbindlist
- ssl - 挂接服务无法启动 | 搭便车 1.5.2-1 | Ubuntu 20.04.1 LTS