【问题标题】:Stop Azure blob trigger function from being triggered on existing blobs when function is published to the cloud当函数发布到云时,停止在现有 Blob 上触发 Azure Blob 触发器函数
【发布时间】:2019-01-11 12:20:28
【问题描述】:

我有一个在 blob 触发器上启动的 Azure 函数。有趣的是,如果我将此 Azure 函数的更新版本发布到云中并且已经存在 blob,那么将在每个已经存在的 blob 上触发 Azure 函数。

这不是我想要的功能。相反,我希望仅在新上传的 blob 上触发新发布的 Azure 函数,而不是在已存在的 blob 上触发。 如何禁用对现有 Blob 的触发?

【问题讨论】:

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


    【解决方案1】:

    如何禁用对现有 blob 的触发?

    目前无法做到这一点并且不推荐

    在内部,我们通过将收据存储在我们的控制容器 azure-webjobs-hosts 中来跟踪我们处理了哪些 blob。 任何没有收据的 blob 或旧收据(基于 blob ETag)都将被处理(或重新处理)。这就是您现有的 blob 正在处理的原因,它们没有收据。

    BlobTrigger 当前旨在确保容器中与路径模式匹配的所有 blob 最终都得到处理,并在它们更新时重新处理。 所以在所有的blob都有收据之后,当你上传一个新的blob时,它只会由新的blob触发

    更多详情可以参考这个article

    当文件上传到 Azure Blob 存储或在 Azure Blob 存储中更新时,会触发 Blob 触发功能。如果禁用对现有 blob 的触发,则在更新 blob 时它不会获取最新内容,不推荐。

    解决方法

    如果还想在新上传的blob上触发,可以在调用函数的时候加上判断。

    List all of existing blobs 在容器中,当 blob 触发调用时,检查 blob 名称是否在列表中,如果没有,您可以继续触发方法。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-26
    • 2022-01-08
    • 2020-06-09
    • 1970-01-01
    • 2021-10-08
    • 2022-10-25
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多