gpt4 book ai didi

azure - 对现有文件多次运行 blob 存储触发器

转载 作者:行者123 更新时间:2023-12-03 03:40:10 24 4
gpt4 key购买 nike

我一直在使用一种方法,通过进入我的存储帐户并删除“azure-webjobs-host”>“blobreceipts”>“[Function”中找到的 blob,对相同文件多次运行存储触发器应用程序名称]' > '[Blob 触发器名称]'

我认为这就是我需要担心的全部问题,以便能够再次在相同的文件上运行我的函数,但是,我一定错过了一些东西,因为这看起来非常不一致。

据我所知,每当触发器在文件上运行时,都应该在与处理该文件的函数相关的 blobreceipts 文件夹内创建另一个文件。我的猜测是,“blobreceipts”内新创建的文件包含所有数据,使该函数无法再次运行同一文件(例如文件的电子标签?等)。所以,我的想法是,如果我只是删除该文件夹中找到的任何内容,我应该可以再次运行我的函数。然而,有时在我的函数运行了数千个文件后,我会去检查“blobreceipts”内部,发现其中只有一个文件/blob。或者,我必须从那里删除很多文件,但即使这样做之后,我的函数似乎也不会再次运行在每个文件上。总体而言,该方法似乎有效,但只是在一定程度上有效。

一定是我漏掉了一些东西。为了在所有相同的文件上再次运行我的 blob 存储触发器,我需要删除其他一些东西。有什么想法/建议吗?

最佳答案

是的,Azure Function 将在相同文件上运行多次。如果相同文件中已存在,它将更新内容。

在更新相同文件上的内容之前,它将在内部检查文件是否存在,如果存在,则操作将失败,直到我们通过代码提供覆盖权限当我们手动上传 Blob 文件时,请在级别或门户中进行操作。

我尝试通过上传相同的文件来运行 Azure Function Blob 存储触发器。当第二次上传同一文件时,它询问该文件是否存在,因此选择覆盖不上传选项。如果我们选择覆盖,则该函数将运行触发器并更新内容。

enter image description here

对于多个文件:

enter image description here

首次 - 上传 15 个文本文件。第二次 - 上传 25 个文本文件(15 个相同,10 个新)

为现有文件上传生成覆盖选项并接受覆盖。

function has run over thousands of files I'll go and check inside of 'blobreceipts' and find that there is only one file/blob in there. Or alternatively, there will be a lot of files that I'll have to delete from there, but even after doing so, it seems my function doesn't run over every single file again.

在Azure Function运行过程中,当你上传大量文件时,你必须编写如下逻辑:

如果 blob 文件存在,则覆盖 else upload as new 到 blob 容器,并在函数中处理文件数据。

对于这个逻辑,请参阅Overwriting the Blob Storage in Azure Function Code , checking if a blob exists in Azure Storage .

此外,one of the workarounds是将多个JSON文件并行上传到blob存储。

如果您在 Azure Function Code 中手动编写逻辑来覆盖现有文件,则 Blob 存储触发函数将在所有文件上运行。

关于azure - 对现有文件多次运行 blob 存储触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71574763/

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