gpt4 book ai didi

python - Azure Function 对同一 Blob 存储事件多次触发

转载 作者:行者123 更新时间:2023-12-03 04:06:09 27 4
gpt4 key购买 nike

我的 Python Azure Function 配置文件 (function.json) 定义了 Blob 存储触发器。

当 Azure Function 唤醒时(即实时指标中显示的服务器在休眠一段时间后变为在线),它会处理所有现有的 Blob,无论哪些 Blob 已生成触发事件。

我注意到 azure-webjobs-hosts/blobreceipts 文件夹中填充了 sandboxhost637nnn 文件夹。 每次 Azure Function 唤醒事件都会创建一个新的 sandboxhost 文件夹。这样,该函数就会忘记以前处理过的 blob(未找到旧收据)。在过去(2019 年 12 月),我记得有一个独特的 webjobs-hosts 文件夹,其中包含跨调用的所有收据。

最佳答案

解释为什么会发生这种情况:

无论您的环境如何,Blob 触发器在设计上都会通过在 azure-webjobs-hosts 容器中维护 Blob 收据来跟踪新的和更新的 Blob。这些收据通过其 **eTags** 与 Functions 运行时的 **主机 ID** 相关联。

当您的函数唤醒时,它将导致您之前的**主机 ID 和 eTag->主机 ID 相关性** 发生变化,这将导致新主机重新处理所有现有的 blob——您观察到的行为。

建议改用事件网格触发器,或者为您的函数应用使用 Azure 应用服务基本计划,这会更昂贵。

其他引用:

https://github.com/Azure/azure-webjobs-sdk/issues/1327

希望有帮助。

关于python - Azure Function 对同一 Blob 存储事件多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59838741/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com