【问题标题】:How to ensure only one Azure Function BlobTrigger runs at a time?如何确保一次只运行一个 Azure Function BlobTrigger?
【发布时间】:2021-02-06 18:17:25
【问题描述】:

我有一个在 Azure Functions 中实现多个 BlobTrigger 的用例(使用 Linux 消耗计划)。例如,在 Azure 存储中,我将有 5 个不同的客户端,其目录结构如下:

client1/file.txt  
client2.file.txt  
client3/file.txt  
client4/file.txt  
client5/file.txt

client1/file.txtclient2/file.txt 可能同时在 Azure 存储中下线。为了防止竞争条件和超过 1.5 GB 内存限制,我希望 client1/file.txt 的 BlobTrigger 等待 client2/file.txt 的 BlobTrigger 完成,反之亦然(顺序在这里无关紧要,只是它们最终都会执行)。

我必须单独设置队列进程吗?我可以使用预览设置WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT轻松实现吗?

编辑:使用持久函数会是更好的解决方案吗?

【问题讨论】:

    标签: azure azure-functions azure-storage azure-blob-storage


    【解决方案1】:

    您应该能够通过确保将 MAX SCALE OUT 值设置为 1 来做到这一点,这样它一次只会处理 1 个文件。您还可以将消费\定价模型从消费更改为应用服务计划一。这样您就可以使用您想要的层级,然后您也可以获得更多可用内存(取决于您选择的层级)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 2011-09-22
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      相关资源
      最近更新 更多